加载Javascript文件,但如果花费的时间太长则取消?

时间:2011-04-12 22:16:05

标签: javascript browser loading

任何人都有一个很好的方法来加载JS文件但是如果花费太长时间就取消加载它?

我正在考虑这样的事情,假设:

<script type="text/javascript" cancel_after="2000" src="myfile.js"></script>

脚本是需要加载到头部的代码,因为它替换了页面上的元素,因此浏览器在加载时需要阻塞。但是如果服务器响应时间过长,我希望能够在不加载脚本的情况下继续浏览器。

3 个答案:

答案 0 :(得分:3)

使用预加载器。我个人更喜欢yepnope,您可以使用yepnope.errorTimeout = 2000

轻松设置超时

检查链接页面以获得相当完整的yepnope文档。

答案 1 :(得分:1)

您可以使用ajax调用加载JavaScript,然后使用eval在闲暇时运行它。在jQuery中它看起来像这样。

$.ajax('test.js', {timeout: 100 /* milliseconds */, success: function(result) {
  eval(result);
});

它很漂亮,并且包含的​​JavaScript中的代码可能需要以不同的方式编码,但这可能会为您完成。

答案 2 :(得分:1)

您可以将<script></script>放在<body></body>之后,或通过JS(document.onload)加载

如果您确实要取消加载,请考虑使用XMLHTTPRequestabort()函数