减少广告主脚本的加载

减少广告主脚本的加载

我有一个网站(http://dev2.liquor.com) 当我删除合作伙伴提供的广告商和跟踪脚本时,加载速度非常快。当然,我们需要将页面加载时间从 6 秒缩短到 1 秒,我发现这 100% 是我们用于合作伙伴跟踪、广告等的所有外部 js 文件。

我一直在绞尽脑汁寻找其他方法来加载/压缩/提供用户需要下载的大量 js。我可以轻松压缩/缩小我的,但不在我们服务器上的其他人的 js 却很难做到这一点。

我能做的最好的就是在 YSlow 上获得一个 C,他们给我的每条建议都与我愚蠢的跟踪 js 脚本有关!

我认为主要问题是跟踪(http://pastebin.com/faMDGrrs) 导致网站加载时间过长。您有办法解决这个问题吗?

我是否可以在我的网站中管理第三方脚本?

任何帮助将不胜感激。

答案1

下面是我编写的一些客户端 JS(基于 Google Analytics 异步跟踪代码片段),它允许您异步加载外部 Javascript:

<script type="text/javascript">
  (function() {
    var scripts = new Array(
        'external.domain.com/script1.js',
        'external.domain.com/script2.js',
        '../script1.js',
        './script2.js',
        '/script3.js'
    );
    if ( scripts.length )
    {
        for ( var i = 0; i < scripts.length; i++ )
        {
            var asynchronous = document.createElement('script');
            asynchronous.type = 'text/javascript';
            asynchronous.async = true;
            if (
                scripts[i].substring(0, 1) != '/' &&
                scripts[i].substring(0, 1) != '.'
            ) {
                // assume external domain (enforce protocol)
                asynchronous.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + scripts[i];
            } else {
                // assume relative URI
                asynchronous.src = scripts[i];
            }
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(asynchronous, s);
        }
    }
  })();
</script>

答案2

将第三方脚本放入iframe可能是一种替代方案。

常识是 iframe 的成本很高(就加载而言),但如果它的成本低于加载第三方元素的成本,您可以尝试一下。

你可能已经做了大部分描述的事情这里,但无论如何它都是一个很好的资源。

相关内容