Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 没有webworkers,多个脚本如何运行?_Javascript_Web Worker - Fatal编程技术网

Javascript 没有webworkers,多个脚本如何运行?

Javascript 没有webworkers,多个脚本如何运行?,javascript,web-worker,Javascript,Web Worker,我正在学习网络工作者,发现我们现在可以在网页上运行多个脚本。这很有趣,但我又想到了一件事:如果我们不能在html web workers之前运行多个脚本,我如何在一个html页面上运行多个幻灯片而不使用上述技术。 我可能不太理解这个概念。有人能解释一下我是如何运行几个只使用JavaScript而不使用web workers设计的幻灯片的吗?幻灯片通常会使用setTimeout()来显示下一张幻灯片。您只需使用自己的setTimeout()就可以进行多个幻灯片放映 第一个幻灯片显示了它的初始图像,

我正在学习网络工作者,发现我们现在可以在网页上运行多个脚本。这很有趣,但我又想到了一件事:如果我们不能在html web workers之前运行多个脚本,我如何在一个html页面上运行多个幻灯片而不使用上述技术。
我可能不太理解这个概念。有人能解释一下我是如何运行几个只使用JavaScript而不使用web workers设计的幻灯片的吗?

幻灯片通常会使用
setTimeout()
来显示下一张幻灯片。您只需使用自己的
setTimeout()
就可以进行多个幻灯片放映

第一个幻灯片显示了它的初始图像,然后为将来某个特定时间设置一个
setTimeout()
,以便切换到下一个幻灯片。然后,第二个幻灯片显示了它的初始图像,并为将来切换到下一个幻灯片的特定时间设置
setTimeout()

然后,两个幻灯片都将暂时执行,直到其中一个
setTimeout()
触发。从技术上讲,他们从不“同时执行”。实际上,一次只有一个人有代码在运行。使用足够短的定时器间隔,看起来它们可能同时工作,但从技术上讲它们不是

没有WebWorkers的Javascript是单线程的。一次只运行一个执行线程。计时器通常用于模拟同时发生的多个事件(例如同时运行的多个基于javascript的动画)。但是,这只是一个模拟(有时是一个非常有效的模拟)

幻灯片还可以使用CSS3动画或转换来显示由浏览器控制的从一张幻灯片到下一张幻灯片的幻灯片转换,而不使用javascript来执行动画(它们使用的本机代码可能是多线程的,也可能不是多线程的,甚至可能使用GPU,这取决于浏览器的实现)


您可能会发现这个答案及其包含的参考资料有助于理解javascript事件模型和单线程:。

WebWorkers允许您在线程中运行多个脚本,而不仅仅是“运行多个脚本”-这在没有WebWorkers的情况下是可能的。下面是对JavaScript并发模型的一个解释-google为类似“JavaScript事件循环”的东西找到了无限的资源:还有来自jQuery创建者的关于计时器如何工作(这都是关于JS事件队列的):这一个看起来也不错: