可以在页面中与 window.load 并行执行外部托管的 javascript 文件的代码吗
Posted
技术标签:
【中文标题】可以在页面中与 window.load 并行执行外部托管的 javascript 文件的代码吗【英文标题】:Can an externally hosted javascript file's code get executed parallel with window.load in a Page 【发布时间】:2016-06-15 18:00:02 【问题描述】:关于 window.onload 调用的外部托管 javascript 文件的执行流程是什么。 假设我们在外部文件中有以下代码:
(function()
console.log('logging1...');
)();
var func1 = function()
console.log('func1 invoked!');
;
func1();
在 window.load 被触发之前,
1.) 上述代码的执行流程或输出是什么?
2.) 是否有可能在 window.load 之后执行文件的任何代码?
3.) 与window.load并行,可以执行外部文件代码。
【问题讨论】:
这个问题对我来说充满了歧义。我建议通读***.com/questions/8996852/… 和developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/… 并提出更具体的问题。此外,javascript 不是多线程的。你不能在 js 中并行运行任何东西,(虽然你可以使用超时) 【参考方案1】:1.) 上述代码的执行流程或输出是什么?
通常是:
logging1...
func1 invoked!
这里的函数调用顺序没有歧义。但请注意console.log()
未标准化以立即打印输出。它可以很好地同步返回,而无需按照console.log()
函数调用的顺序打印给定的参数。
2.) 是否有可能在 window.load 之后执行文件的任何代码?
没有(当然,除了事件侦听器、计时器等中的代码)。
load 事件在文档加载过程结束时触发。在 此时,文档中的所有对象都在 DOM 中,并且所有 图片、脚本、链接和子框架已完成加载。 (https://developer.mozilla.org/de/docs/Web/API/GlobalEventHandlers/onload)
3.) 与window.load并行,可以执行外部文件代码。
并行是什么意思? JavaScript 是单线程的。
【讨论】:
以上是关于可以在页面中与 window.load 并行执行外部托管的 javascript 文件的代码吗的主要内容,如果未能解决你的问题,请参考以下文章
window.load 和$(document).ready() 区别
$(document).ready() $(window).load 及js的window.onload
$(window).load(function(){}) 和 $(document).ready(function(){})的区别