加载 Javascript 文件,但如果时间太长就取消?

发布于 2024-10-31 14:35:18 字数 258 浏览 1 评论 0原文

有人有一个加载 JS 文件的好方法,但如果时间太长就取消加载吗?

假设我在想这样的事情:

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

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

Anyone have a good way to load a JS file but cancel loading it if it takes too long?

I'm thinking something like this, hypothetically:

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

The script is code that needs to get loaded in the head, because it replaces elements on the page, and so the browser needs to block while loading it. But in case the server takes too long to respond, I'd like to be able to have the browser proceed without loading the script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

倥絔 2024-11-07 14:35:18

使用预加载器。我个人更喜欢 yepnope,您可以使用 yepnope.errorTimeout = 2000 轻松设置超时

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

Use a preloader. I personally prefer yepnope, where you can easily set a timeout using yepnope.errorTimeout = 2000

Check the linked page for a rather complete documentation of yepnope.

芯好空 2024-11-07 14:35:18

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

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

它并不漂亮,并且所包含的 JavaScript 中的代码可能需要以不同的方式编码,但这可能适合您。

You can load the JavaScript using an ajax call then use eval to run it at your leisure. In jQuery it would look something like this.

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

It aint pretty, and the code in the included JavaScript may need to be coded differently, but this might do it for you.

静水深流 2024-11-07 14:35:18

您可以将 放在 后面,或者通过 JS 加载(document.onload)

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

You can put <script></script> after <body></body> or load it via JS (document.onload)

If you really want to cancel loading, then think about using XMLHTTPRequest and abort() function

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文