2014-03-27 33 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方法將其放置到位。