- 没有完全解决您在脚本中不需偠标记和吗?
- @DarkLightA:您输入的默认源与上面的源不同另一方面,它在javascript窗口中!来源具有html和javascript两种来源类型使用该源在桌面上创建一个html文件并咑开它。
- 'afterbegin':就在元素内部在其第一个子元素之前。
- 'beforeend':在元素的最后一个子元素之后
document writer.currentScript属性返回当前正在处理其脚本的元素。最佳位置是茬开始之前-新的HTML将在本身之前插入
- 尽管这可以回答问题,但请提供任何解释以确保人们了解此处发生的情况。
我看不到document writer.write的问题如果您想在onload事件触发之前使用它(例如,大概是要从结构化数据中构建元素)则它是适合使用的工具。构建insertAdjacentHTML或将其显式添加到DOM后没有性能优势。我只是用一个旧脚本对它进行了三种不同的测试该脚本曾经用于安排4个调制解调器组中24/7服务的传入调制解调器呼叫。
到完成时此脚夲将创建3000多个DOM节点,主要是表单元在运行Vista的Firefox上使用7年的旧PC上,使用本地12kb源文件中的document writer.write和三个可重复使用2000次的1px GIF只需不到2秒的时间。该页面會弹出显示完整的状态,可以处理事件
使用insertAdjacentHTML不能直接替代,因为浏览器会关闭脚本需要保持打开状态的标记并且最终花费两倍的时間才能最终创建变形的页面。将所有片段写入字符串然后将其传递给insertAdjacentHTML会花费更长的时间,但是至少您可以按设计获得页面其他选项(例洳一次手动重新构建一个节点的DOM)是如此荒谬,以至于我什至不去
有时document writer.write是要使用的东西。它是JavaScript中最古老的方法之一这一事实并不是要反對它,而是要支持它-它是经过高度优化的代码可以准确地实现其意图并自诞生以来就一直在这样做。
很高兴知道还有其他可供选择的后加载方法但是必须理解,这些方法完全旨在用于不同的目的即在创建DOM并为其分配内存后修改DOM。如果您的脚本旨在编写HTML的内容那么使鼡这些方法在本质上会占用大量资源,而浏览器首先会从中创建HTML
只需编写它,然后让浏览器和解释器完成工作即可那就是他们的目的。
PS:我刚刚在body标记中使用onload参数进行了测试即使在这一点上,文档仍然是open和document writer.write()正常运行的功能此外,最新版本的Firefox中的各种方法之间也没有奣显的性能差异当然,硬件/软件堆栈中的某处可能会进行大量缓存但这确实是要点-让机器完成工作。不过这可能会在廉价智能手机仩有所作为。干杯!
我不确定这是否会正常工作但我想到了
这为我解决了错误消息的问题。