我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。

请附上申领文件的理由。下面是一个坏习惯。


当前回答

我不认为使用文档。写作根本就是一种糟糕的习惯。简单地说,对于没有经验的人来说,这就像一个高压。如果用错了,你就会被煮熟。有许多开发人员至少使用过一次这种或其他危险的方法,但他们从未真正深入研究过自己的失败。相反,当出现问题时,他们只是跳出来,使用更安全的东西。正是这些人对所谓的“坏习惯”做出了这样的声明。

这就像格式化硬盘驱动器,当你只需要删除几个文件,然后说“格式化驱动器是一个坏习惯”。

其他回答

我能想到的是:

文档。写需要用在页面加载或正文加载上。因此,如果您想在任何其他时间使用脚本来更新您的页面内容文档。写作几乎毫无用处。 技术文档。write只更新HTML页面,不更新XHTML/XML。IE似乎对这个事实很宽容,但其他浏览器不会。

http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite

根据Google-Chrome Dev Tools的Lighthouse Audit所做的分析,

对于连接速度较慢的用户,通过document.write()动态注入的外部脚本可能会将页面加载延迟数十秒。

一些比较严重的问题:

document.write (henceforth DW) does not work in XHTML DW does not directly modify the DOM, preventing further manipulation (trying to find evidence of this, but it's at best situational) DW executed after the page has finished loading will overwrite the page, or write a new page, or not work DW executes where encountered: it cannot inject at a given node point DW is effectively writing serialised text which is not the way the DOM works conceptually, and is an easy way to create bugs (.innerHTML has the same problem)

最好使用安全且DOM友好的DOM操作方法

浏览器违反

.write被认为是浏览器违规,因为它会停止解析器呈现页面。解析器接收到文档正在被修改的消息;因此,它会被阻塞,直到JS完成它的进程。只有在这个时候,解析器才会恢复。

性能

使用这种方法的最大后果是降低性能。浏览器需要更长的时间来加载页面内容。加载时间的不良反应取决于写入文档的内容。如果您向DOM添加一个<p>标记,而不是将一个包含50个左右引用的数组传递给JavaScript库,您不会看到太大的区别(我在工作代码中看到过这种情况,导致11秒的延迟——当然,这也取决于您的硬件)。

总而言之,如果可以的话,最好避免使用这种方法。

有关更多信息,请参阅对document.write()进行干预

Chrome浏览器可能阻止文档。编写在某些情况下插入脚本的代码。当这种情况发生时,它将在控制台中显示以下警告:

一个解析器阻塞,跨源脚本,…,通过 document . write。这可能会被浏览器阻止,如果设备 网络连通性差。

引用:

developers.google.com上的这篇文章将详细介绍。 https://www.chromestatus.com/feature/5718547946799104