慢加载javascript包括阻止网站的其余部分

时间:2010-02-19 15:37:37

标签: javascript

我有一个包含来自外部网址的第三方Javascript网站。但是,它经常加载非常缓慢(如果有的话)。这是我们的营销团队使用的跟踪服务,所以我无法将其删除(我已经建议了!)。

目前它包含在我的页面模板末尾,非常简单

<script src='http://remoteurl/'></script>

页面上的所有其他脚本在执行任何操作之前一直等到它已加载,这意味着我正在使用的任何JS小部件在加载之前都不起作用。如果它超时,它们永远不会运行。

因此,外部网站的性能问题导致我们网站出现问题。

令人沮丧的是,该网站不需要此脚本来加载其他所有功能。那么有没有办法加载它,以便它不会阻止站点的其余部分在运行失败时运行?

(我已经尝试了defer属性,但是虽然这会影响执行顺序,但它不会改变事情,即在发生任何事情之前必须加载所有内容)

感谢您的任何建议。

2 个答案:

答案 0 :(得分:4)

请参阅 this question 。方法是动态地onload创建脚本元素,因此它不会阻止或延迟加载本身。

答案 1 :(得分:0)

您是否可以在页面的最末尾添加代码,将脚本标记添加到页面而不是手动添加脚本标记?这就是Google Analytics处理它的方式。这样,其余的(您的)代码在跟踪器代码甚至添加到页面之前运行。

样品:

<script type="text/javascript">
    var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>

<script type="text/javascript">
    try {
        var pageTracker = _gat._getTracker("tracker-id-removed");
        pageTracker._trackPageview();
    } catch (err) { }
</script>