2014-03-27 41 views
0

我有一个包含许多消息的元素。
每个消息是一个HTML元素与json使用一个ajax调用,或者两个使用html的ajax调用?

<div class="items"> 
    <other-non-related-elements ...> 
    <div class="item"> 
     <h4>title</h4> 
     <p>content</p> 
    </div> 
    <div class="item" ... 
</div> 

该内容正被使用Ajax呼叫不断更新。 它们完成的方式:php代码正在生成准备好打印的html。 JQuery代码将删除元素并添加新的元素。

$.get('url',null, 
function(data){ 
    $(".items .item").remove(); 
    $(".items").append(data); 
} 

现在我需要一个单个的(不是item)元素添加到<items>元件。
它应该是这样的

<div class="items"> 
    <new element>content</new element> 
    <other-non-related-elements ...> 
    <div class="item"> 
     <h4>title</h4> 
     <p>content</p> 
    </div> 
    <div class="item" ... 
</div> 

为了保持它作为一个Ajax调用时,PHP会产生json的代码,该代码jQuery将操纵成html元素。由于页面已经非常忙于其他js代码,我不确定这是一个更好的解决方案。

另一种解决方法是做两个ajax调用。一个用于new-element,另一个用于这些物品。

有什么建议吗?想法?

回答

2

如果不需要,不要担心客户端的性能。
进行一次AJAX调用,并用客户端JS进行分类。
请记住,您的服务器必须处理大量请求,但Web浏览器只能处理几个请求。因此,如果您始终可以将工作放在客户端 - 他/她不会注意到,但是他们一定会注意到,如果您的服务器不断遭到大量传入请求的轰炸。
抓住JSON让JS做这个工作。

2

我会保持一个Ajax调用。正如你所提到的,Json可能是最好的选择。或者,根据您的结构,PHP可以返回纯HTML,然后JavaScript/jQuery可以使用innerHTML方法将其放置到位。