2010-11-02 23 views
7

我需要在我的页面上包含一个非现场JavaScript文件,但是我不希望它能够影响我的网站的性能,以防服务器上的javascript处于关闭状态或没有响应。如何确保非现场的JavaScript不会妨碍网站的性能?

我想知道的是,如果它可能与javascript做某种包装功能,以确保非现场的JavaScript托管的页面在可接受的时间范围内响应。

我曾考虑将“延迟”属性添加到包含javascript的位置,但据我所知,仍然会在网页的其余部分加载后离开网站。

如果在JavaScript中无法做到这一点,有没有什么好的选择?

我的网站是C#asp.net。

回答

4

如果非现场JavaScript是自包含的 - 即您的脚本在它们可以正常运行之前都不依赖于它被加载 - 解决方案可能非常简单。这个例子是使用jQuery,但任何库(甚至没有图书馆)是可行的:

​​3210

这将等到整个页面加载,然后插入一个新<script>块入空的占位符DIV,这将触发浏览器尝试下载脚本。如果远程服务器的响应速度较慢或处于关闭状态,脚本仍需要很长时间或超时,但它不会阻止用户在等待时使用页面的其余部分。

0

有趣的问题。你可以用ajax和回调函数做一些超时,如果到那时还没有加载,你可以采取一些行动。是否有一个特定的原因依赖于另一个网站?将它直接复制到您的网站似乎更为简单。

1

将脚本放在页面底部,至少将其推迟到其他所有内容加载之后。

根据您的需求,您甚至可以加载完全通过XHR一切后(钩到实际窗口加载事件等待图像太),然后动态地注入了利用eval()的内容荷兰国际集团响应文本。您需要在您的网站上使用代理,以避免跨域限制,这可能会破坏您的目的,我不确定。

查看详情:http://www.stevesouders.com/blog/2009/04/27/loading-scripts-without-blocking/