可以在页面中与 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(){})的区别

Nginx的配置中与流量分发相关的配置规范:

js的 window.load 和window.onload 有啥区别

加载完后执行