在 Web Worker中使用无限同步循环
创新互联公司坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站建设、网站设计、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的永兴网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
由于 Web Worker 本质上是Web线程,因此你可以在其中无限循环而不阻塞主线程。这使你可以访问微秒级的时间分辨率。这对于在 Worker 中做出时间关键的决策是特别实用的,可以让主线程准确的知道什么时候合适。例如:只要微秒是质数,就渲染某些东西。要访问微秒,你可以使用 performance.now。
优点
引用MDN:“ Worker 的 Terminate() 方法立即终止 Worker。它不会为等待 Worker 完成里面执行的程序,而是会立即停止。”
缺点
使用CSS动画处理时间事件(animationiteration)
如果创建带有无限动画的 div。你可以订阅其 animationiteration 事件,并在事件 animation-duration 回调时得到通知。
优点
缺点
使用SVG 标签(SMIL动画)
- attributeName="rx"
- values="0;1"
- dur="1s"
- repeatCount="indefinite"
- />
如果这样调用:animate.addEventListener('repeat', fun),你的函数将每秒被调用一次。
优点
缺点
使用 Web Animations API
Web Animations API 允许你在 JavaScript 中为 DOM 元素设置动画。
有趣的是,你可以使未渲染完的元素具有动画效果!这使你能够访问纯 JS (和 Web api)中的定时机制。
这是替代 setTimeout 的实现:
- function ownSetTimeout(callback, duration) {
- const div = document.createElement('div');
- const keyframes = new KeyframeEffect(div, [], { duration, iterations: 1 });
- const animation = new Animation(
- keyframes,
- document.timeline
- );
- animation.play();
- animation.addEventListener('finish', () => {
- callback();
- });
- }
很整洁,不是吗?
优点
缺点
新闻标题:浏览器中实现JavaScript计时器的4种创新方式
URL网址:http://www.shufengxianlan.com/qtweb/news41/255241.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联