我们正在开发大型ASP.NET应用程序,其中包含许多包含ASCX控件的动态创建页面.我们到处都使用了很多jQuery.
我一直在阅读将内联JavaScript代码移到页面底部是有意义的,因为当它包含在"太早"时它可能会延迟加载页面.
我现在的问题是:使用jQuery时这仍然有意义吗?
大多数代码都是在ready处理程序中执行的,所以我希望这不会减慢页面的加载速度.在我的例子中,多个Usercontrols ASCX拥有所有自己的jQuery位和碎片,并且在渲染页面中将它们全部移动并不容易.
建议在HTML后面放置脚本,因为顺序加载和执行脚本(一次一个脚本)并完全阻止同时加载和解析图像和CSS文件.
页面顶部附近的大/滞后/慢速运行脚本可能会导致页面内容/布局的加载和呈现不必要的延迟.
脚本的大小(下载时间)和复杂性(执行时间(dom遍历等))因素 - 但更重要的是,单个HTTP请求的数量要多得多(请求越少越好).
使用"document.ready"处理程序减少了执行速度慢导致的延迟 - 但仍然存在顺序HTTP开销的问题.
推荐阅读:Nate Koeckley的高性能网站.
您可以模拟在Cuzillion中对JavaScript进行排序的不同方式,以了解它如何影响页面加载.
有关页面元素排序如何影响速度的示例,请参阅示例和此博客文章.