Javascript,也通常被简称为js。在互联网和移动互联网中发挥了越来越重要的作用。同时越来越多的js脚本让网站设计变得越来越麻烦和不可控制。所以设计开发出高效快速响应的js脚本变得非常有必要。如何才能做出快速响应而又规范的易管理的js脚本呢。这就应该从网站设计的规划期开始制定统一的开发标准。下面就把我们工作中比较常用的一些技巧分享给大家,希望对初学者有一定的帮助,也希望爱好者能和我们进行一些js技术上的探讨。
间隔执行是解决响应重叠的非常重要的一个技巧。setInterval函数。它需要一个函数引用和一个以毫秒为单位描绘的数值。之后,只要延迟计时器到期,就会定期启动该功能。sleep()函数需要我们将sleep模块加载到本地npm项目。它充当操作系统睡眠库的接口–不用怀疑在部署软件包时是否启动了工作站的编译器。
现代浏览器为每个选项卡配备一个JavaScript线程。仔细看一下我们的循环,发现它是无止境的。这意味着它将永远运行,并且永远不会产生控制权。鉴于setInterval()处理消息,由于消息处理程序被阻止运行,因此其有效负载永远不会运行。
鉴于底层操作系统能够执行抢先式多任务处理,让我们通过称为WebWorkers的专用API产生线程来利用其功能,该API享有广泛的支持。此步骤随附的图显示了该功能的当前列表。消息传递通常需要在运行时与操作系统的其余部分之间进行某种交互。令人遗憾的是,我们无休止的循环阻止了此过程-这意味着只有一条消息在“大停滞”之前弹出。
尽管运行紧密的无限循环的工作人员确实遇到了上述问题,但例程可以相互通信。这是通过消息传递接口完成的–将其视为一种工具,可让您跨线程边界将消息对象从发件人传递到收件人。
除了能够高效地协调线程的好处(并减少“冲突”的风险,也称为竞争条件)的好处之外,由于创建困难,消息传递到主线程是与DOM交互的唯一方法线程安全的GUI堆栈。
在Node.JS中实现消息传递很繁琐。将代码移至Web –首先创建一个可加载examplempi.js的HTML工具。请注意,由于DOM来源限制,此代码只能从localhost Web服务器运行。
使用Node.JS代码的开发人员不要忘记,如果需要极高的性能,通常他们也可以创建完全本机的模块。这些不仅可以利用各种操作系统API的优势,还可以用编译为机器代码的编程语言来编写。
每个工作程序都公开一个onmessage属性,该属性占用一个函数引用,每当从另一端弹出一条消息时,都必须调用该函数引用。传入消息仅从主线程转发到浏览器的控制台。
这段代码返回了一个Promise对象-这是添加到Java Script中的另一个便利类,旨在使多线程处理变得更加容易。您将需要通过setTimeout调用其resolve方法,以确保代码必须“坐下来”很多时间。