我有一個相當ajax沉重的網站和一些3k html格式的頁面插入DOM從ajax請求。ajax html vs xml/json響應 - 性能或其他原因
我一直在做的是採取html響應,並使用jQuery插入整個事情。
我的其他選擇是在XML(或可能的JSON)中輸出,然後解析文檔並將其插入到頁面中。
我注意到,似乎最大的網站做的事情的JSON/XML的方式。 Google Mail會返回xml而不是格式化的html。
這是由於性能?還是有另一個原因使用XML/JSON vs只是檢索HTML?
從javascript的角度來看,它似乎注入直接HTML是最簡單的。在jQuery中我只是這樣做
jQuery.ajax({
type: "POST",
url: "getpage.php",
data: requestData,
success: function(response) {
jQuery('div#putItHear').html(response);
}
與XML/JSON響應我會做
jQuery.ajax({
type: "POST",
url: "getpage.php",
data: requestData,
success: function(xml) {
$("message",xml).each(function(id) {
message = $("message",xml).get(id);
$("#messagewindow").prepend("<b>" + $("author",message).text() +
"</b>: " + $("text",message).text() +
"<br />");
});
}
});
顯然不如從代碼的角度高效,我不能指望它是更好瀏覽器的性能,所以爲什麼要做第二種方式?
這真的是Garry問題的核心。雖然這也打開了進一步的辯論。有2K下線,我想知道哪裏會有表演?它來自管道嗎?或者是通過插入chuck verses來解析json/xml,然後逐個插入 – pedalpete 2009-07-18 19:52:50
注意到當jQuery從AJAX獲取html時,如果它是一個HTML頁面,那裏有很多數據,jQuery無法解析。由於jQuery構建新DOM節點的方法是將它們保存在div中,因此html,head,body等元素是無效的並被忽略。這可能意味着你通過線路發送了大量浪費的數據。 – 2009-07-18 20:12:35