04/24
2019
在本站页面打开浏览器控制台,可以看到一些提示信息:
2 个提示:避免使用 document.write()
2 个提示:解析器因 document.write() 被阻塞
2 个警告:解析器因 document.write() 输出的跨域脚本被阻塞。在网络状况差的情况下,浏览器也许会停止加载这个跨域脚本。
以上警告和性能问题都是 cnzz 统计代码的锅,它里面使用了 document.write()。在本站被墙之后,日访问 IP 暴跌到不足 1000,统计代码已经没什么必要了,我先去掉统计代码吧。
为什么不建议使用 document.write() 呢?
1.每次执行 document.write() 都会回写文档流,导致整个页面被重新解析一遍。
2.我们知道,非同步的 JavaScript 脚本是会阻塞浏览器的。这不是 document.write() 的原罪,但是在 document.write() 里输出另一个 JavaScript 文件的请求是很常见的,如下:
document.write('<script src="https://example.com/script.js"></script>')
这样就会阻塞浏览器,所以这也是 document.write() 的一个污点。,如果网络非常差,Chrome 可能会不去加载这样的 js 文件。
建议使用 DOM 操作动态添加元素,避免使用 document.write()。
一些更详细的说明可以参见此文。
个人网站也会被墙的吗Σ(っ °Д °;)っ