1
假设您的应用程序动态获取某些脚本的某些条件。该行为是否同步并阻止,例如任何正在进行的HTML停止渲染,还是以异步方式完成?执行动态加载的JavaScript
假设您的应用程序动态获取某些脚本的某些条件。该行为是否同步并阻止,例如任何正在进行的HTML停止渲染,还是以异步方式完成?执行动态加载的JavaScript
脚本的动态加载通常是异步的(通过Ajax或<script>
标签)。加载后脚本的执行与其他任何正在运行的脚本一样是同步的。
有可能运行阻塞的Ajax调用来加载它(虽然通常被认为是一个坏主意),但我认为你没有这样做,所以使用普通的Ajax调用或者<script>
标记对于加载是异步的。
我真正的意思是评估那个javascript阻塞,并且说,正在进行的动画会在主线程评估脚本时挂起。 – wootscootinboogie 2014-11-21 01:33:47
@wootscootinboogie - 基于JavaScript的动画会在脚本运行期间(但不是在加载脚本期间)停顿,因为Javascript是单线程的,所以当一个执行线程正在运行时,没有计时器事件会运行(我假设是什么被用于一个Javascript动画)。 CSS3动画更可能运行,因为它们不必等待Javascript(尽管这可能是针对每个浏览器的特定实现)。 – jfriend00 2014-11-21 01:36:38
这可能会变得太具体,但我知道(或者我认为我现在),Chrome有一个浏览器线程,可以下载和编译javascript。适用于对javascript进行优化的浏览器。你有什么经验在这种情况下会发生什么? – wootscootinboogie 2014-11-21 03:29:10