我有这个问题,在第三方脚本完成加载之前,我的页面的 UI 组件(如下拉菜单)不可用。这会导致一个问题,因为谁知道这些服务器上发生了什么。我需要将页面交互式组件的可用性与第三方内容的加载分开......
如何?
=/
我有这个问题,在第三方脚本完成加载之前,我的页面的 UI 组件(如下拉菜单)不可用。这会导致一个问题,因为谁知道这些服务器上发生了什么。我需要将页面交互式组件的可用性与第三方内容的加载分开......
如何?
=/
尝试这样的事情:
<script type="text/javascript">
window.onload = function() {
var scripts = [ '3rdparty1url','3rdparty2url','3rdparty3url',etc...];
var head = document.getElementsByTagName('head')[0];
for(var i = 0; i < scripts.length; ++i) {
var scriptTag = document.createElement('script');
scriptTag.src = scripts[i];
head.appendChild(scriptTag);
}
}
</script>
页面在客户端浏览器中完成加载后,这将加载到您的外部脚本文件中。您的表单 UI 元素应该全部可用。
如果你使用 jQuery,你可以这样做:
<script type="text/javascript">
jQuery(function($){
var scripts = [ '3rdparty1url','3rdparty2url','3rdparty3url',etc...];
$.each(scripts, function(i,scrurl) {
$('head').append($('<script>', { src: scrurl }));
}
});
</script>
您应该仔细考虑您的页面,以便它可以很好地降解。
在加载 JS 之前以某种“裸露”的形式提供菜单,一旦它们可用,您就可以将 UI 更改为超华丽且充满花里胡哨的 :)
这对于那些关闭 JS 的用户(可能不多,但仍然......)以及索引蜘蛛以捕获菜单内容也很有用。
JS 性能专家Steve Souders 关于 JavaScript 阻塞和异步加载给出了很好的概述。谷歌“异步 javascript 加载”了解更多信息。有些库也可以调度和加载外部文件。 另一个.