手机版

并行下载JavaScript和其他资源的方法

时间:2021-09-09 来源:互联网 编辑:宝哥软件园 浏览:

在IE6/7中,JavaScript会从两个方面阻碍页面渲染:脚本标签下的网页资源会在脚本加载前停止请求和下载。脚本标记下面的Html元素将在脚本加载之前停止呈现。

脚本标签将阻止ie6/7 firefox2/3 Safari3 Chrome1和opera下的下载:

尽管在ie8、safari4和chrome2下脚本可以并发,但它们仍然会阻碍其他资源的下载:

有六种方法可以与其他资源并行下载脚本:

1.通过XHR下载脚本,然后执行XHR的响应。xhr通过eval方法重新注入——通过xhr下载脚本,然后创建一个脚本标签并将其插入到文档中(在body或head标签内部)。然后将脚本标签的文本属性设置为XHR的响应文本的值。3.xhrin iframe-将脚本标记放在iframe中。通过iframe下载。4.脚本DOM元素——创建一个脚本标签,并将其src属性指向您的脚本地址。5.Script delay-添加script标记的delay属性,该属性仅在ie中有效,但firefox3.1也支持该属性。6.使用document.write方法在页面中写入脚本src=' http 3360 ',该方法仅在ie中有效。

您可以通过Cuzillion查看每种方法的使用示例。

如果有一些内联脚本需要在执行完外部脚本之后再执行,那么就需要对它们进行同步。文章名为“耦合”,耦合异步脚本,介绍了目前可以实现“耦合”的一些方法。

Headjs,它使js可以同时下载(但按顺序执行):http://headjs.com/

复制的代码如下: head . js('/path/to/jquery . js ','/Google/analytics.js ','/js/site.js ',function(){//all done });//最简单的情况。加载和执行单个脚本而不阻塞。head . js('/path/to/file . js ');//加载一个脚本,并在加载完head.js('/path/to/file.js ',function() { })后执行一个函数;//并行加载文件,但按顺序head.js('file1.js ',' file2.js ')执行,filen . js’);//加载完所有脚本后执行函数head.js('file1.js ',' file2.js ',function(){ });//文件并行加载,并按照到达head.js('file1.js ')的顺序执行;head . js(' file 2 . js ');head . js(' file 3 . js ');//前面的也可以写成head.js('file1.js ')。js('file1.js ')。js(' file 3 . js ');

版权声明:并行下载JavaScript和其他资源的方法是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。