何时使用document.write()

When to use document.write()?

本文关键字:write document 何时使      更新时间:2023-09-26

SO成员告诉我不要使用document.write()。innerHTML直接操作DOM更好,或者更好。

然而,如果我是第一次加载页面,并且有内容存储在mysql表上,因此它将被转换为HTML,如果我不想让服务器执行此任务,我该怎么做?

如果服务器做到了,那么我就可以让PHP代码生成html并将其放置在需要的地方。。但是b.c.我希望Javasrcript(客户端)呈现我使用的HTML代码(它是由php生成的,但处理时间更短,因为它不会创建HTML)

 <script type='text/javascript'>document.write(Arc.ViewHBookmark('google.com|http://www.google.com|Google||ideeli.com|http://www.ideeli.com|Ideeli||kikin.com|http://www.kikin.com|Kikin||lot18.com|http://www.lot18.com|Lot18||twitter.com|http://twitter.com|Twitter'))</script>

这就是我让客户端在重新加载页面时生成HTML的方式。带有document.write().的嵌入式Javascript

有更好的方法吗?我所说的"更好"是指不使用document.write().的方法

我可以调用javascipt函数来在onload事件中呈现HTML,但在这种情况下,我如何访问JSON数据或类似数据(AML)。

我可以把它写在纸上。。然后读回,生成内容,并将其写回页面。。。但这似乎比仅仅使用document.write() 更低效

在这种情况下使用document.write()可以吗?

如果没有,将结构化数据写入页面并让javascript将其转换为HTML是否被认为是一种好的做法?

当然,创建保存数据库数据的javascript对象,然后根据javascript对象的构建方式渲染页面。

我们不知道Arc.ViewHBookmark到底应该做什么,但它似乎正在返回HTML。所以答案很简单:让它直接操作DOM(例如动态添加元素),而不是让它返回HTML字符串。然后调用它,而不将其封装在document.write中。

如果我正确理解了这个问题,你可以使用一个div(或者,根据上下文,可能是span)元素,其中有一个空内容,你现在有了"script"元素,例如

<div id="foo"></div>

然后使用JavaScript将生成的内容放入该元素中:

document.getElementById('foo').innerHTML = Arc.ViewHBookmark(...);

(例如,您可以将其放入div元素之后的script元素中。)