Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 何时使用document.write()?_Php_Javascript - Fatal编程技术网

Php 何时使用document.write()?

Php 何时使用document.write()?,php,javascript,Php,Javascript,某某成员告诉我不要使用document.write()。innerHTML更好,或者更好,可以直接操作DOM 但是,如果我是第一次加载一个页面,并且有存储在mysql表中的内容,因此它将被转换为HTML,如果我不想让服务器执行此任务,我该怎么做呢 如果是服务器做的,那么我可以让PHP代码生成html并将其放置在需要的地方..但是b.c.我希望Javasrcript(客户端)呈现html,我使用此代码(由PHP生成,但处理时间更短,因为它不创建html) document.write(Arc.Vi

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

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

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

document.write(Arc.ViewHBookmark('google.com|http://www.google.com|谷歌| | 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|推特)
这就是我如何让客户端在重新加载页面时生成HTML的方法。带有document.write()的嵌入式Javascript

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

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

我可以将其写入页面..然后读入,生成内容,并将其写入页面..但这似乎比仅使用
document.write()

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


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

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

当然,请创建包含数据库数据的javascript对象,然后根据javascript对象的构建方式呈现页面。

如果我理解正确,您可以使用
div
(或者,根据上下文,可能是
span
)元素,其中现在有'script'元素,例如

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

(你可以把它放在
script
元素中,放在
div
元素之后。)

我认为就是因为这个原因,服务器才存在……我最近看到的浏览器故障比服务器多得多。对javascript进行更多的处理确实会降低用户的网站速度。此外,PHP的运行效率远远高于JS.Travis,生成DOM元素或创建文本并将其放入.innerHTML中有什么更好的方法呢?好吧,这实际上取决于javascript占用了多少代码。拥有一个创建DOM对象然后插入它的函数的好处是,您可以将它用于多个任务,而如果您一直使用.innerHTML,则最终可能会得到一个巨大的js文件,该文件正在构建字符串并将其插入innerHTML区域。最佳做法是减少冗余。
<div id="foo"></div>
document.getElementById('foo').innerHTML = Arc.ViewHBookmark(...);