saber酱的抱枕

Fly me to the moon

04/24
02:11
学习

避免使用 document.write()

在本站页面打开浏览器控制台,可以看到一些提示信息:

避免使用 document.write()

2 个提示:避免使用 document.write()
2 个提示:解析器因 document.write() 被阻塞

避免使用 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()。

一些更详细的说明可以参见此文

避免使用 document.write()