这是一个非常基本的问题 - 在网页中同步或异步加载的脚本和图像(例如ajax请求中发生的情况)?我正在谈论包含常规html方式的图像和脚本 - 和
我只是想知道浏览器如何对包括相对较大的文件(例如jQuery(我最后检查的大约2mb)或其他大型库或大图像)做出反应,我应该担心这会让我的用户在连接时卡住几秒钟到我的网站?我特别想了解jQuery开销,因为我正在考虑将它用于一个小项目...
答案 0 :(得分:6)
图像是异步加载的,可能是同时加载的。不要打扰他们,只要让它们尽可能小,并使用CSS sprites。
脚本正在阻止,即您无法在下载前一个脚本之前加载下一个脚本。这是可以理解的,因为可能存在一些脚本间依赖性。
您通常要做的是将所有JavaScript资源压缩和缩小为一个文件,该文件包含在页面底部。通过这种方式,页面可以很好地呈现,从而提供良好的用户体验,并在最后加载脚本。毕竟,您通常在DOM ready事件之前运行脚本。
BTW jQuery minified仅约93K。如果您使用上面的链接,它很可能会一劳永逸地在浏览器中缓存。
答案 1 :(得分:1)
服务器发送DOM后,浏览器就会显示 网站。
图像被异步加载,因此会出现大图像 慢慢地慢慢连接
jQuery是32kb
脚本逐个加载,而不是同时加载
答案 2 :(得分:1)
要添加到已经说过的内容,那里有 脚本加载库,可以同时加载脚本,但仍然确保它们出现执行。我曾经使用并建议的是head.js。它提供了一个非常简单的界面(下面是从图书馆的网站复制的):
head.js("/path/to/jquery.js", "/google/analytics.js", "/js/site.js", function() {
// all done
});
此外,澄清关于jQuery大小的混淆......从版本1.7.2开始:
最后一个选项是您在生产网站上实际使用的选项;所以你担心用户需要下载一个2 MB的库可以休息。
答案 3 :(得分:0)
脚本块是同步的(但它们可能包含异步代码)
图像加载是异步的
答案 4 :(得分:-1)
我认为HTML的正常行为是同步加载所有文件(图像和脚本)。
虽然可以编写一个小型内联JavaScript来异步加载文件。