【发布时间】:2009-07-21 11:34:24
【问题描述】:
如何防止加载缓慢的外部js文件阻塞整个网站的加载过程(因为浏览器一次只处理2个请求)?
假设我想包含 sharethis 按钮,但服务器负载很重,需要很长时间才能满足我的请求,我如何才能强制其余部分加载。还是应该在网站已经加载后添加外部脚本?
我正在使用带有 jQuery 的 RoR。
最好, 奥莱
【问题讨论】:
标签: javascript jquery ruby-on-rails performance
如何防止加载缓慢的外部js文件阻塞整个网站的加载过程(因为浏览器一次只处理2个请求)?
假设我想包含 sharethis 按钮,但服务器负载很重,需要很长时间才能满足我的请求,我如何才能强制其余部分加载。还是应该在网站已经加载后添加外部脚本?
我正在使用带有 jQuery 的 RoR。
最好, 奥莱
【问题讨论】:
标签: javascript jquery ruby-on-rails performance
我个人会在您需要的项目之后加载额外的项目。
例如将代码添加到页面底部,以便 jQuery 已经加载,然后从 jQuery 中加载它们,如下所示
$(document).ready(function(){
$.getScript("urlofscript");
});
getScript() 的详细信息here
【讨论】:
你应该使用jQuery的$(document).ready()函数动态加载外部JavaScripts。
您必须创建 <script> 元素并将它们附加到您的文档中。
【讨论】:
将您的 javascripts 放在页面末尾,就在
请务必将此阻止脚本放在页面末尾,</body> 之前。
或者,如果您想延迟加载它/实际上不需要加载页面的脚本,那么document.write() 选项很好。
我也推荐从这个页面阅读网页优化规则:http://code.google.com/speed/page-speed/docs/rtt.html。
或者阅读 Steve Souder 的任何一本书:“高性能网站”和“更快的网站”
【讨论】:
只需将<script> 元素放在文档末尾(就在</body> 标记之前)。
【讨论】: