jQuery:将JavaScript移到页面底部?

时间:2008-11-24 19:34:55

标签: javascript asp.net jquery

我们正在开发大型ASP.NET应用程序,其中包含许多包含ASCX控件的动态创建页面。我们到处都使用了很多jQuery。

我一直在阅读将内联JavaScript代码移到页面底部是有意义的,因为当它包含在“太早”时,可能会延迟加载页面。

我现在的问题是:使用jQuery时这仍然有意义吗?

大多数代码都是在ready处理程序中执行的,所以我希望这不会减慢页面的加载速度。 在我的情况下,多个Usercontrols ASCX拥有它们自己的jQuery 各个部分,并且在渲染页面中将它们全部移动并不容易。

4 个答案:

答案 0 :(得分:15)

建议在HTML后面放置脚本,因为按顺序加载和执行脚本(一次一个脚本)并完全阻止同时加载和解析图像和CSS文件。

页面顶部附近的大/滞后/慢速运行脚本可能会导致加载和呈现页面内容/布局时出现不必要的延迟。

脚本的大小(下载时间)和复杂性(执行时间(dom遍历等))因素 - 但更重要的是,单个<script> HTTP请求的数量要多得多(请求越少越好)

使用“document.ready”处理程序可以减少因执行速度慢而导致的延迟 - 但仍会留下顺序HTTP开销的问题。

推荐阅读:Nate Koeckley撰写的High Performance Web Sites

答案 1 :(得分:10)

您可以在Cuzillion中对JavaScript的排序方式进行建模,以了解它如何影响页面加载。

有关页面元素排序如何影响速度的示例,请参阅examplesthis blog post

答案 2 :(得分:1)

当你包含JS时,从那时起加载页面将推迟,因为JS文件可能包含“document.write”语句。

这意味着整个页面将从包含JS文件的位置停止呈现并使浏览器变为“白色”或某些东西(至少不显示页面的其余部分)所以简短的回答是肯定是的 ......!

(更长的答案是“可能”,概率为99%)

在移动中包含JS(以及内联JS - 你不应该使用BTW)到底...

如果您使用的是ASP.NET,则不应使用jQuery,而应使用Ra-Ajax BTW自动包含所有这些“最佳实践”...

答案 3 :(得分:-2)

大多数情况下,将JavaScript移动到页面底部的原因是为了确保在运行JavaScript之前已经创建了JavaScript可能引用的任何DOM元素。这也确保了在运行任何JavaScript之前页面都有时间呈现。

在这种情况下,我不担心在页面上向下移动JavaScript。

相关问题