【发布时间】:2012-06-07 01:29:18
【问题描述】:
我的页面上有以下代码:
<script src="https://chatserver.comm100.com/js/LiveChat.js?siteId=&planId=2594&partnerId=-1" type="text/javascript"></script>
这个脚本需要很长时间才能加载,所以我想异步加载它,所以它在下载/渲染页面的其余部分时做它自己的事情。所以我输入了这段代码:
(function() {
var s = document.createElement('script');
s.type = "text/javascript";
s.src = 'https://chatserver.comm100.com/js/LiveChat.js?siteId=&planId=2594&partnerId=-1';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s,x);
})();
但是当我使用后者时,代码不会运行。调试起来有点困难,因为文件被缩小了。
关于异步加载,我有什么遗漏吗?我还需要采取什么其他步骤吗?
谢谢!
【问题讨论】:
-
您是否尝试使用 HTML5 异步属性?为什么不把那个属性放在你的
<script>标签中呢? -
异步属性只是为了将来验证代码。这是谷歌推荐的。我会删除它,以帮助您克服它。
-
您的标记上还有其他脚本标签吗?如果不这样做,
x将是未定义的。 -
x 不能未定义,因为您至少有一个包含上述 sn-p 的脚本。 js 文件使用 document.write 来加载额外的脚本,所以我猜这会破坏它。
-
@jasssonpet 显然!我怎么能错过!
标签: javascript jquery asynchronous