2011-04-13 185 views
1

我正在使用php & jquery。我使用ajax調用來加載從其他一些PHP頁面獲得的一些巨大的html內容。隨着時間的推移它越來越慢,我明白問題在於,我必須將結果作爲JSON返回。 HTML內容是一些html內容和其中的一些事件的表格加載html內容爲json

但我應該如何做到這一點。什麼需要spl?

+0

先顯示代碼,也顯示您想要的輸出 – diEcho 2011-04-13 07:57:58

+0

您應該只通過JSON傳輸數據,即表中包含的數據,在客戶端使用JavaScript創建表/行並從HTML中移動事件綁定片段到「主頁面」,也許使用事件委派。 – 2011-04-13 08:00:02

+0

必須閱讀[類似問題](http://stackoverflow.com/questions/4634407/how-to-transfer-json-data-to-html-with-php) – diEcho 2011-04-13 08:01:52

回答

2

在返回你的PHP頁面HTML內容,你可以這樣做:

// $html should contain the html code you want to return, e.g 
// <table>...............</table> 
$html = json_encode(array('html'=>$html)); 
echo $html; 
die; 

在JavaScript中,你可以做這樣的事情:

function getHtml() 
{ 
    $.getJSON("yourphpPage.php", function (result) 
     { 
      $("#yourHtmlDiv").html(result.html); 
     } 
    ); 
} 
+1

這很清楚。我相信這會幫助我 – jason 2011-04-13 08:11:58

+0

@jason:如果你擔心,因爲HTML數量巨大,傳輸速度很慢,那麼這對你無能爲力。它傳輸相同數量的HTML。你沒有任何優勢。 – 2011-04-13 08:26:26

+0

@jason點擊勾號將其標記爲答案,如果你喜歡 – 2011-04-13 13:49:43

1

你應該先嚐試瞭解json是什麼。這只是一種分層信息的格式。與HTML不同,Json本身對這些信息沒有任何意義。例如,除非您手動處理它們並運行事件處理程序,否則不存在「事件」之類的內容。然而,如果你可以得到你的信息是JSON格式,並且仍然有用,它很可能會佔用更少的空間/帶寬,加載甚至解析速度比HTML更快。

閱讀和解析json非常簡單,因爲它基於JavaScript。任何JSON代碼也是一個有效的JavaScript,所以你可以用eval來解析它。但是,只有當你完全相信json的源代碼不是惡意的時候,你才應該這樣做,因爲在eval()中運行你從請求中獲得的任何東西都不是很安全。 如果你不完全信任的輸入,可以使用例如http://api.jquery.com/jQuery.getJSON/

+0

不需要'eval()'。有JSON解析器。 – 2011-04-13 08:02:10

+1

我會去getJSON – jason 2011-04-13 08:12:26

0

如果我理解你的問題,ü要以JSON返回數據,然後使用簡單

jQuery.ajax({ 

       dataType:'json' 
}) 
+0

好吧,我也會檢查這一個 – jason 2011-04-13 08:13:10