首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Analytics.js阻止其他脚本

Analytics.js阻止其他脚本
EN

Stack Overflow用户
提问于 2015-11-20 15:23:06
回答 2查看 715关注 0票数 0

我在我的网页上使用jquery malihu自定义滚动条。然后我嵌入了截取的谷歌分析代码。有时(可能10次中有4次) Analytics.js需要40秒才能加载。滚动条脚本是必不可少的,没有它网站看起来很丑陋,但这个滚动条脚本是在加载页面后执行的。但是页面在40秒后才会加载(因为analytics.js的原因),所以40秒看起来很糟糕。analytics.js不是异步加载的吗?那么,为什么它会阻止页面正确加载呢?

它看起来是这样的:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="de">
  <head>
     <!-- Some meta tags, links, scripts -->    
     <link rel="stylesheet" href="css/jquery.mCustomScrollbar.css">
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
     <script src="js/jquery.mCustomScrollbar.concat.min.js"></script>
  </head>
  <body onload="onLoad();" >
     <!-- Some code -->    
   <script>
    (function($){
        $(window).load(function(){

            $("body").mCustomScrollbar({
                theme:"minimal-dark"
            });

        });
    })(jQuery);
    </script>

    <script>
        (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

        ga('create', 'UA-X4XXX297-X', 'auto');
        ga('send', 'pageview');

    </script>
  </body>
</html>
EN

回答 2

Stack Overflow用户

发布于 2015-11-20 15:38:07

根据此链接Analytics for Web (analytics.js),谷歌分析将不会阻止其他脚本加载。

尝试将脚本更改为在document ready上运行:

代码语言:javascript
复制
(function($) {
    $(window).ready(function() {

        $("body").mCustomScrollbar({
            theme: "minimal-dark"
        });

    });
})(jQuery);
票数 1
EN

Stack Overflow用户

发布于 2015-11-20 16:22:21

异步脚本,包括谷歌analytics.js脚本,不会阻止其他脚本的加载或呈现。

导致mCustomScrollbar延迟执行的原因是它在onload事件中执行。Onload仅在下载完所有资源后才会触发。这包括所有脚本、图像、css等。

所以你有两个选择。或者不要等待onloadevent,而是使用DOMContentLoaded。因为您已经在使用jquery,所以可以使用$(window).ready。我不知道jquery malihu自定义滚动条,所以你需要确保它不依赖于页面的完全加载。

或者,您需要调查是什么阻碍了onload事件。因此,在浏览器的developertools网络选项卡中打开网页,或者在webpagetest中打开您的网站,尝试找出是什么降低了onload事件的速度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33821069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档