如何确保异地javascript不会妨碍网站性能?

sto*_*sfn 7 javascript c# asp.net

我需要在我的页面上包含一个异地javascript文件,但我不希望它能够影响我的网站的性能,以防javascript所在的服务器关闭或没有响应.

我想知道的是,是否可以使用javascript来制作某种包装函数,以确保托管异地javascript的页面在可接受的时间范围内响应.

我已经考虑过将"defer"属性添加到我包含javascript的位置,但据我所知,仍然会在页面的其余部分加载后将网站挂起.

如果在javascript中不可能做到有什么好的选择吗?

我的网站是C#asp.net.

Rex*_*x M 4

如果场外 JavaScript 是独立的 - 即您的脚本在正常运行之前都不依赖于它的加载 - 解决方案可能非常简单。此示例使用 jQuery,但任何库(甚至没有库)都是可行的:

<div id="script-placeholder"></div>
<script type="text/javascript">
$(function(){
    $('.script-placeholder').append('<script type="text/javascript" src="http://site.com/file.js"></scr'+'ipt>');
});
</script>
Run Code Online (Sandbox Code Playgroud)

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