从XMLHttpRequest动态添加标记内容的首选方法

时间:2009-06-08 08:35:23

标签: php javascript ajax

在成功的xml http请求之后,将动态内容添加到网页的最佳方法是什么。打破一个更具体的例子:

  • 用户在输入字段中填写数据(例如论坛帖子)
  • 使用ajax技术异步更新数据
  • 即时为最终用户显示论坛帖子

像Facebook或last.fm这样的网站(当你发布一个喊叫时,即)将直接对象中的已处理标记发送回javascript,而不仅仅是处理过的数据。用jQuery编写的这个例子就是

$('#activeField').html(callback.data);

另一种方法是使用javascript动态创建dom元素。我发现这太笨拙了,因为今天没有简单的方法(?)和简单的方法。同时,直接从服务器发送已处理的标记违反了我们的应用程序的设计原则(MVC),因为在前端控制器中没有标记是不可取的。

这样做的“最佳实践”方法是什么?谢谢!

2 个答案:

答案 0 :(得分:2)

  

同时,发送   处理标记直接来自   服务器违反了我们的应用程序   设计原则(MVC),如有   前控制器中的标记不是   优选的。

我可能会错过这一点,但是您是否可以通过像往常一样在视图中呈现标记而不是必须在控制器中添加标记来从服务器发送标记?假设您的View机制能够返回呈现的HTML而不是立即输出它,您可以检索它,然后在调用json_encode()并输出之前将其添加到数组中。然后,您可以使用相同的视图代码来呈现此HTML片段,无论它是作为整页的一部分还是通过AJAX调用获取。

答案 1 :(得分:1)

我认为这个问题可能在主观上推得太过分了,但我个人认为最好的计划是返回JSON的请求,它描述了将内容和机制(我的意思是javascript方法)序列化为HTML if存在多种可能性。这节省了带宽,并且(正如您所指出的那样)可以保留您的关注点。我想要的最后一件事是我的前端人员必须处理来自服务器端人员的任意标记。抽象很好。

我真的不明白为什么你觉得JS生成的标记是笨拙或困难的。解析和生成标准JSON结构的一些JS方法对我来说似乎轻巧而且微不足道,尽管我必须承认我总是在这里推出自己的方法。几乎可以肯定,那里有一个框架(任何人?)。如果没有,那么我有这个伟大的商业理念......