我的理解是,优化的网页应该包含尽可能少的javascript块,以改善/减少页面加载时间。
是否可以合并以下3个区块,每个区块通过Google Analytics(分析)测量不同的事件,A),以及B)在减少/改善页面加载时间方面产生任何有意义的影响?
<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-XXXXXX-X', 'auto');
ga('require', 'displayfeatures');
ga('require', 'linkid', 'linkid.js');
ga('send', 'pageview');
</script>
<script language="javascript">
EventNONInteraction = true;
Frequency = 4;
GA_EventCategory = 'category2';
GA_EventAction = 'down'; //
_frequency = Frequency;
_repentance = 100 / Frequency;
var _scrollMatrix = new Array();
for (ix = 0; ix < _repentance; ix++) {
_scrollMatrix[ix] = [_frequency, 'false'];
_frequency = Frequency + _frequency;
}
$(document).scroll(function (e) {
for (iz = 0; iz < _scrollMatrix.length; iz++) {
if (($(window).scrollTop() + $(window).height() >= $(document).height() * _scrollMatrix[iz][0] / 100) && (_scrollMatrix[iz][1]== 'false')) {
_scrollMatrix[iz][1] = 'true';
ga('send', 'event', GA_EventCategory, GA_EventAction, _scrollMatrix[iz][0]+'%', {'nonInteraction': EventNONInteraction});
}
}
});
</script>
<script language="javascript">
if (document.referrer.match(/google\./gi) && document.referrer.match(/cd/gi)) {
var myString = document.referrer;
var r = myString.match(/cd=(.*?)&/);
var rank = parseInt(r[1]);
var kw = myString.match(/q=(.*?)&/);
if (kw[1].length > 0) {
var keyWord = decodeURI(kw[1]);
} else {
keyWord = "(not provided)";
}
var p = document.location.pathname;
_gaq.push(['_trackEvent', 'RankTracker', keyWord, p, rank, true]);
}
</script>
如果两者都是,我如何正确组合块?
答案 0 :(得分:0)
组合这三个内联脚本标签当然是可能的。只需将代码全部粘贴到一个脚本标记中,而不是三个单独的标记。
并且,组合各自外部加载JS文件的单独脚本(这不是你拥有的)可以在页面加载时间上产生有意义的差异,因为通过互联网下载或查找和加载的资源较少缓存。这可能是你理解的来源。
但是,将多个内联脚本标记组合到一个脚本标记中可能甚至不会引人注意,因为它不会影响任何类型的外部加载时间,除了您可能节省的几个字节的下载(这本身可能并不明显)。