2013-03-19 51 views
1

我有一個小型應用程序,通過PHP後端從數據庫加載HTML內容。目前,jQuery將PHP文件中的html數據加載到主頁上的DIV中,每隔5秒發生一次setInterval() $('#div').html(html);。所有格式都在CSS中完成,數據結構從php文件中回顯出來。我還使用jQuery通過PHP將數據發佈到數據庫,因爲這是一個小型的聊天應用程序。我的問題是什麼是更快或更有效的方式來拉這個數據,要麼使用json和解析每個元素到它的結構通過jQuery .each()方法或繼續使用我當前的.html()方法來加載數據並回顯出完整的數據結構通過PHP?謝謝你的時間。jQuery .each()方法或.html()方法

+1

定義「更好」。拉動HTML的JSON intead需要(稍微)更多的工作在客戶端,但(稍微)更快的網絡下載。通常這被認爲是可取的,但如果你沒有報告任何問題,爲什麼要擔心呢? – Blazemonger 2013-03-19 16:04:06

+0

「更好」是什麼意思?對'html()'發出一個調用,而不是增量地構建DOM樹將最可能*更快*。 – 2013-03-19 16:04:08

+0

這不是問一個具體的問題,所以我懷疑它會被關閉,但我想評論一下任何一種方法都是有效的,這只是一個哲學問題。如果您有PHP後端返回JSON數據,那麼PHP後端將與前端完全分離,然後您可以將其用於UI類型(移動版本的網站,智能手機應用程序...)或其他視圖相同的用戶界面。 – 2013-03-19 16:06:34

回答

2

我個人在PHP中將結構回顯爲JSON對象。然後在JavaScript解析它,並通過.html()將其放置到它的容器中。

我認爲這比替代方案好得多,因爲您在PHP中擁有漂亮的可編輯代碼,只需使用javascript將其放在需要的位置即可。

在我的PHP:

$response['error'] = false; // if you get an error set this to true 
    $response['html'] = ''; // set this wherever you like. 
    alternately if you needed to break it up 
    $response['html_A'] = ''; 
    $response['html_B'] = ''; 


>  in the end 


    echo json_encode($response); 

在JavaScript

$.post(function(r){ 
    response = JSON.parse(r); 
    if (response.error !== true){ 
    $('#someDiv').html(response.html); 
    } 
    else { 
    alert (response.errorMessage); 
    } 
} 

做一個$。每個循環似乎費力。特別是當你決定添加/ mod一些由php生成的輸出時。

相關問題