我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。
请附上申领文件的理由。下面是一个坏习惯。
我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。
请附上申领文件的理由。下面是一个坏习惯。
当前回答
它覆盖了页面上的内容,这是最明显的原因,但我不认为它“坏”。
除非使用JavaScript创建整个文档,否则它没有多大用处,在这种情况下,您可以从document.write开始。
即便如此,在使用文档时,您并没有真正利用DOM。写——你只是在向文档中倾倒一团文本,所以我认为这是糟糕的形式。
其他回答
根据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只更新HTML页面,不更新XHTML/XML。IE似乎对这个事实很宽容,但其他浏览器不会。
http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite
这是我的两便士,一般来说,你不应该使用文件。为繁重的任务编写,但有一个实例绝对有用:
http://www.quirksmode.org/blog/archives/2005/06/three_javascrip_1.html
我最近在尝试创建AJAX滑块库时发现了这一点。我创建了两个嵌套的div,并应用宽度/高度和溢出:隐藏到外部<div>与JS。这样,在浏览器禁用JS的情况下,div将浮动以容纳图库中的图像-一些漂亮的优雅降级。
问题是,与上面的文章一样,这种JS劫持CSS直到页面加载后才开始,导致div加载时出现短暂的闪光。所以我需要写一个CSS规则,或包括一个表,作为页面加载。
显然,这在XHTML中行不通,但由于XHTML似乎是一个死鸭(并且在IE中呈现为标签汤),可能值得重新评估您对DOCTYPE的选择…
它可以阻止你的页面
文档。写只在页面加载时工作;如果在页面加载完成后调用它,它将覆盖整个页面。
这实际上意味着你必须从一个内联脚本块中调用它——这将阻止浏览器处理接下来页面的部分内容。直到写入块完成,脚本和图像才会被下载。