document.write()造成了什么损害?

Sim*_*bbs 9 javascript dom

现在发生了什么坏事document.write()

我听说过document.write有关对DOM或Javascript库的使用产生负面影响的点点滴滴.我在我面前有一个问题,我怀疑是相关的,但是未能找到该方法造成的损害的简明摘要.

And*_*y E 13

使用document.write()会破坏网页 - 破坏和覆盖整个DOM - 如果在文档完成解析后调用它.这被认为是很糟糕的使用,document.write()并且是批评许多旧脚本的原因.

window.onload = function ()
{
    document.write("Oops!");
}
Run Code Online (Sandbox Code Playgroud)

但一般情况下,在分析时可以接受并广泛使用,以同步方式动态地向页面添加内容:

<div>
  <script type="text/javascript">
  document.write("Well I'll be, your browser supports JavaScript!");
  </script>
</div>
Run Code Online (Sandbox Code Playgroud)

它广泛用于广告发布服务,用于将广告添加到页面,一些Google API也使用它.


Nic*_*ver 8

页面阻塞,这是足够的或不正确使用的原因.

当你执行document.write时,正如Andy所说,这是同步的意思,你必须等待它继续页面的其余部分.

我不希望您的网站因为您的广告服务器停机而挂断.不幸的是,这是SO的情况,右边的AD使用document.write使用来自另一个服务器的脚本,如果向下,则阻止页面加载直到超时.这种延迟,因为document.write和慢速(通常第三方)广告服务器是远远往往一个网站加载缓慢的原因.

旁边的咆哮:广告从景观中获取金钱,好的,你需要谋生.但是从技术角度来看,不要依赖它们,因为在他们的服务器关闭,你的网站是FUBAR ...以非阻塞的方式做广告,除了document.write实现这一目标还有很多方法.