我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。
请附上申领文件的理由。下面是一个坏习惯。
我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。
请附上申领文件的理由。下面是一个坏习惯。
当前回答
这是我的两便士,一般来说,你不应该使用文件。为繁重的任务编写,但有一个实例绝对有用:
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的选择…
其他回答
一个简单的原因为什么文件。写是一个不好的做法,因为你无法想出一个你找不到更好的替代方案的场景。 另一个原因是您正在处理字符串而不是对象(这是非常原始的)。 它只附加到文档中。 它没有MVC(模型-视图-控制器)模式的美感。 使用ajax+jQuery或angularJS来呈现动态内容要强大得多。
我认为最大的问题是任何通过文档编写的元素。写被添加到页面元素的末尾。这很少是现代页面布局和AJAX所期望的效果。(您必须记住DOM中的元素是临时的,脚本何时运行可能会影响其行为)。
最好在页面上设置一个占位符元素,然后操作它的innerHTML。
这是我的两便士,一般来说,你不应该使用文件。为繁重的任务编写,但有一个实例绝对有用:
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的选择…
可以将document.write()(和. innerhtml)看作是对源代码字符串求值。这对于许多应用程序来说非常方便。例如,如果您从某个源获取HTML代码作为字符串,那么只需“计算”它就很方便。
在Lisp的上下文中,DOM操作就像操作一个列表结构,例如通过执行以下操作创建列表(橙色):
(cons 'orange '())
而document.write()就像求值一个字符串,例如通过这样求值一个源代码字符串来创建一个列表:
(eval-string "(cons 'orange '())")
Lisp还具有使用列表操作创建代码的非常有用的能力(例如使用“DOM样式”创建JS解析树)。这意味着你可以使用“DOM样式”构建一个列表结构,而不是“字符串样式”,然后运行该代码,例如:
(eval '(cons 'orange '()))
如果您实现编码工具,例如简单的实时编辑器,那么能够快速计算字符串是非常方便的,例如使用document.write()或. innerhtml。Lisp在这个意义上是理想的,但是你也可以用JS做一些很酷的事情,很多人都在做,比如http://jsbin.com/
它使用XML呈现来分割页面(如XHTML页面)。
最好:一些浏览器切换回HTML渲染,一切工作正常。
可能:某些浏览器在XML呈现模式下禁用了document.write()函数。
最糟糕的情况:某些浏览器在使用document.write()函数时会触发一个XML错误。