>浏览器将在不停止页面处理的情况下并行下载file.js和其他延期脚本。
在Internet Explorer版本4.0版中实施 - 12年前!自3.5版以来,它也可以在Firefox中获得。从理论上讲,它应该在DOM完全加载之后(在Domcontent Loaded Event事件之前不久)进行。在实践中,这取决于OS和浏览器,是否缓存该脚本以及当时其他脚本正在执行的操作。
> async属性
async在html5: async中与DEFER相同,除了在下载后第一个添加了prominal intal intal intal intal ontrib ontrib ontrib ontrib on tallib on after int promiplib and commien commanync均与defer相同(defer)(均可执行)。您不能保证脚本会按顺序执行,但是当窗口onload事件fires fires时,它们会加载它们。在Firefox 3.6,Opera 10.5和最新的WebKit构建中,对异步的支持,因此它应显示在Chrome和Safari的下一个版本中。 IE9尚未支持异步
,但是IE团队可以很容易地将其添加为DEFER的别名。您可以同时使用异步和defer来支持所有浏览器 - 即使是IE4。也许在几个月内,我们最终将拥有一种在所有浏览器中使用的本机非阻止JavaScript加载方法。注意:Opera延迟的脚本ExecutionOpera提供了一个实验性的延迟脚本执行设施,可以启用In gout in atim at atect:contif:配置。它记得在页面上加载异步脚本的位置,因此可以使用文档。写入或修改DOM。该功能将立即受益于封闭页面加载的小部件和广告。希望Microsoft,Mozilla和Webkit遵循Opera的领导。
经常询问有关非阻滞,异步和延期的问题(常见问题解答)
> javaScript中的异步和defer之间有什么区别?
> ync和defer都是可以将属性添加到HTML中的脚本标签中以控制JavaScript文件的加载和执行方式。异步属性加载并使用网页的其余部分执行脚本。这意味着脚本在加载后立即执行,而无需等待其余的网页加载。另一方面,延期属性也异步加载脚本,但它可以捍卫脚本的执行,直到网页的其余部分加载为止。这对于依赖DOM在运行之前已充分加载的脚本可能很有用。
我应该将JavaScript代码放在HTML文档中?>
>在JavaScript中无需在JavaScript中意味着什么?网页。这是通过将脚本放置在HTML文档底部或使用脚本标签中的Async或defer属性来实现的。非阻挡脚本可以改善网页的加载性能,因为浏览器可以在加载和执行脚本时继续加载并渲染网页的其余部分。
>>浏览器如何处理多个脚本,如何用异步或递延属性来处理多个属性?可用,没有特别的顺序。这意味着可以在其他人面前执行较小或更靠近HTML文档顶部的脚本。当多个脚本用延期属性标记时,浏览器会按照它们出现在HTML文档中的顺序加载它们,但是对其执行进行防御,直到网页的其余部分加载为止。这样可以确保脚本以正确的顺序执行,即使它们是异步加载的。
>我可以在同一脚本标签中使用async和defer属性吗?但是,它们的行为取决于浏览器。在支持这两个属性的现代浏览器中,异步属性优先于延期属性。这意味着脚本将在可用后立即加载和执行。延期属性被忽略。在不支持异步属性的较旧浏览器中,如果存在的延期属性。这是使用异步或延期的优点之一,因为它允许网页继续加载和渲染,即使脚本未能加载。但是,重要的是要正确处理脚本加载错误,以确保您的网页即使脚本未能加载也正确。这涉及测试脚本元素上的异步或递送属性是否存在。如果属性存在,则浏览器支持属性。如果不是,那么浏览器不支持属性。
>我可以使用async或defer属性与inline脚本吗?
no,async和defer属性仅适用于外部脚本。它们对内联脚本没有影响。如果您想对加载和执行内联脚本,则需要使用其他技术,例如,使用JavaScript动态创建脚本元素。> async,defer和非块之间的差异是什么区别?脚本已加载和执行。 ASYNC属性加载并在脚本可用后立即执行,而无需等待其余的网页加载。延期属性还不同步加载脚本,但是对其执行进行防御,直到网页的其余部分加载为止。非阻止脚本已加载和执行,而不会阻止网页的渲染。使用的最佳技术取决于您的网页和脚本的特定需求。
>
以上是用HTML5异步加载非阻滞JavaScript并延期的详细内容。更多信息请关注PHP中文网其他相关文章!