1
imn1 2015-10-26 11:13:20 +08:00
我一直都是把统计代码优化掉,少一个连接算一个
|
2
xmbaozi OP @imn1 能这样是最好的。但我们基本上都要加载自己内部的统计代码、百度统计,有时候还用上 google analytics 的事件追踪(国内的统计平台都抄袭不来的)
|
4
domty 2015-10-26 13:21:01 +08:00
有一个小技巧,把你的 js 统计代码全部扔到 html 的尾部,貌似这样可以保证页面加载先于统计代码的加载.
不过我没试过,因为没遇到过这样的需求. |
5
xmbaozi OP @domty 是的。里面提到了,但会影响 会影响 DOMContentLoaded , 比如 $(document).ready() 延迟
|
6
luoway 2015-10-26 14:25:30 +08:00
|
8
xmbaozi OP @luoway 之所以加 setTimeout 是因为 “在 Chrome 、 Firefox 、 Opera 、 IE11+ 会影响 onload ,像 Chrome 的 favicon 就一直在转圈圈。”
|
9
honeycomb 2015-10-26 15:04:26 +08:00
@xmbaozi
我们一般 ublock/umatrix 屏蔽所有第三方域名内容和第一方脚本, cookie 然后根据需要一点点手工白名单 所以基本上所有的第三方统计代码,和相当程度的第一方统计代码都被优化了 |
12
luoway 2015-10-26 15:16:03 +08:00
|
13
xmbaozi OP @luoway 你是问 setTimeout 吧?
我是经过测试,可以解决 onload 的。至于原理嘛,我觉得是让浏览器以为这个动作是要延迟执行的,不至于阻塞 onload 。 |
15
honeycomb 2015-10-26 17:29:32 +08:00
@xmbaozi
建议必要的时候可以做成像淘宝的形式 把功能性的 js 和统计用 js 放在一个 post/get 里 比如这样的: https://g.alicdn.com/kg/??search-suggest/6.0.22/mods/storage-min.js,search-suggest/6.0.22/mods/utils-min.js,flash/2.0.0/index-min.js 如此直接用简单屏蔽规则就无法有效优化掉统计代码的 像我这样屏蔽用户追踪代码的人只会越来越多(相比于此,广告代码反而是比较无害的) |
16
iyangyuan 2015-10-27 09:18:41 +08:00
楼上各位大哥, js 的确是单线程,但浏览器不是啊。。。浏览器不会傻到用一个线程去加载所有的 js 、 css 、图片等等,否则 callback 就没有意义了,要不为啥叫异步啊!
还有 setTimeout 是把需要执行的函数放到执行队列中,等待执行。如果不加 setTimeout ,浏览器执行源文件中的 js 的栈就会等待资源加载完,否则退不出去,加上 setTimeout 0 ,相当于把此函数延迟到了下一次任务,不再属于当前任务栈,所以顺利完成页面加载。 个人愚见。。。 |