用延迟加载解决CNZZ加载慢的问题

Posted Milton

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用延迟加载解决CNZZ加载慢的问题相关的知识,希望对你有一定的参考价值。

我是不太喜欢CNZZ的, 不过既然公司要用, 还是得加, 这个公司不知道为什么不好好优化一下, 这么多功能都做了, 难道不愿意多费几分钟优化一下这个特别影响用户体验的统计代码? 现在的移动站页面, 是有载入提示浮层的, 要在页面加载完毕后, 才会将浮层撤销, 结果CNZZ动不动加载超时, 导致浮层经常盖在那里好几分钟不动弹.

原来的代码是

<script type="text/javascript">var cnzz_protocol = (("https:" == document.location.protocol) ? " https://" : " http://");document.write(unescape("%3Cspan id=‘cnzz_stat_icon_125974259‘%3E%3C/span%3E%3Cscript src=‘" + cnzz_protocol + "s11.cnzz.com/z_stat.php%3Fid%3D125974259‘ type=‘text/javascript‘%3E%3C/script%3E"));</script>

或者是

<script src="https://s11.cnzz.com/z_stat.php?id=125974259&web_id=125974259" language="JavaScript"></script>

前者会在载入中写入一个span, 然后在下面加载一串js, 在span里写一些内容, 这个也是很让人讨厌的一个地方, 因为它会在页面上显示出来, 非得自己做写改动才能把它隐藏掉. 后者会载入一串js.

好了, 修改的结果是这样的, 放到页面最下方</body>标签前面

  <script>
    $(function () {
      // 延迟CNZZ统计, 以免影响页面载入
      var cz = document.createElement("script");
      cz.src = "//s11.cnzz.com/z_stat.php?id=125974259&web_id=125974259";
      document.getElementsByTagName(‘body‘)[0].appendChild(cz);
    });
  </script>

这样会在页面加载完毕后再执行, 不影响页面其他元素正常显示.

以上是关于用延迟加载解决CNZZ加载慢的问题的主要内容,如果未能解决你的问题,请参考以下文章

emlog通过pjax实现无刷新加载网页--完美解决cnzz统计和javascript失效问题

片段布局加载延迟

如何处理前端页面首次加载慢的问题

如何延迟或异步此 WordPress javascript 片段以最后加载以加快页面加载时间?

让javascript加载速度倍增的方法(解决JS加载速度慢的问题)

延迟弹出对话框片段,直到其中的 webview 完成加载