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
元素中。)