当前位置: 首页 > 面试题库 >

JavaScript为什么document.write被认为是“坏习惯”?

武琛
2023-03-14
问题内容

我知道这document.write被认为是不良做法;并且,我希望整理出一份为什么要向第三方供应商提交的原因清单,说明为什么他们不应该document.write在其分析代码的实现中使用它们。

document.write在下面说明您提出不良做法的理由。


问题答案:

一些较严重的问题:

  • document.write(此后称为DW)在XHTML中不起作用

  • DW不会直接修改DOM,从而阻止了进一步的操作 (试图寻找证据,但充其量只是视情况而定)

  • 页面加载完成后执行的DW将覆盖页面,或写入新页面,或不起作用

  • DW在遇到的地方执行:它无法在给定的节点上注入

  • DW有效地编写了序列化的文本,这不是DOM在概念上的工作方式,并且是创建错误的简便方法(.innerHTML存在相同的问题)

使用安全且对DOM友好的DOM操作方法要好得多



 类似资料:
  • 问题内容: 在教程中,我学会了使用。现在,我了解到,很多人对此表示反对。我已经尝试过,但随后它实际上将其发送到打印机。 那么我应该使用哪些替代方法,为什么不使用呢?w3schools和MDN都使用。 问题答案: 作为推荐的替代方法,您可以使用DOM操作直接查询节点元素并将其添加到DOM。

  • 问题内容: 为什么是选择?如果添加了想要的新列,这是否意味着更少的代码更改? 我知道这在某些数据库上是性能问题,但是如果您真的想要每列,该怎么办? 问题答案: 确实有三个主要原因: 将数据转移到消费者方面效率低下。 当您选择SELECT *时,通常从数据库中检索到的列数超出了应用程序实际需要运行的列数。这将导致更多数据从数据库服务器移至客户端,从而减慢访问速度并增加计算机上的负载,并花费更多时间在

  • 问题内容: 许多人告诉我,在控制器中操作DOM是一件非常糟糕的事情,但这究竟是什么原因。它如何影响您正在制作的应用程序?有哪些最佳实践,以及如何实现? 问题答案: 从技术上讲,控制器应该更小,更紧凑,并且不应使用DOM。控制器仅希望具有在事件上被调用的业务逻辑和绑定级别逻辑。 根据我的观点,“ 您不应该从控制器中操作DOM ”背后的原因是,这仅仅是因为关注点分离。如果您从控制器执行DOM操作,那么

  • 问题内容: 我问了一个一般性的Spring问题:自动播发Spring Bean,并让多个人回答说应尽可能避免调用Spring 。这是为什么? 我还应该如何访问配置了Spring创建的Bean? 我在非Web应用程序中使用Spring,并计划按照LiorH的描述访问共享对象。 修正案 我接受下面的答案,但这是Martin Fowler的另一种选择,他讨论了依赖注入与使用(本质上与调用相同)的优点。

  • 根据我的理解,如果子例程不作用于类的实例(其作用仅限于显式输入/输出),则它是;如果子例程作用于类的实例,则它是(它可能会对实例产生副作用,使其不纯)。 关于这个话题,这里有一个很好的讨论。请注意,根据接受答案的定义,静态实际上应该是一个函数,因为实例从不隐式传递,而且它不能访问任何实例的成员。 不过,考虑到这一点,静态实际上不应该是函数吗? 我想确保我使用了正确的措辞。 有人能澄清一下吗?

  • 我有一个问题,关于什么是正确的做法,使用SwingU实用程序的调用稍后方法。 所以首先,我想确认我理解正确。 据我所知,对GUI的更改必须在EDT上完成,因为Swing组件不是线程安全的。invokeLater方法将Runnable作为参数,该Runnable中包含的任何内容都将在EDT上运行。因此,对Swing组件的任何调用都被放入一种队列中,在EDT上一次执行一个。 有了这些,我的问题是:使用