0

我有这个问题,在第三方脚本完成加载之前,我的页面的 UI 组件(如下拉菜单)不可用。这会导致一个问题,因为谁知道这些服务器上发生了什么。我需要将页面交互式组件的可用性与第三方内容的加载分开......

如何?

=/

4

3 回答 3

3

尝试这样的事情:

<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>
于 2010-05-17T21:00:47.453 回答
2

您应该仔细考虑您的页面,以便它可以很好地降解。

在加载 JS 之前以某种“裸露”的形式提供菜单,一旦它们可用,您就可以将 UI 更改为超华丽且充满花里胡哨的 :)

这对于那些关闭 JS 的用户(可能不多,但仍然......)以及索引蜘蛛以捕获菜单内容也很有用。

于 2010-05-17T21:00:48.663 回答
1

JS 性能专家Steve Souders 关于 JavaScript 阻塞和异步加载给出了很好的概述。谷歌“异步 javascript 加载”了解更多信息。有些也可以调度和加载外部文件。 另一个.

于 2010-05-17T21:02:36.130 回答