2012-07-07 28 views
0

我想創建一個AJAX搜索來查找和列出論壇中的主題(只是主題鏈接和主題)。 問題是:哪一種方法更好更快?在服務器端創建html元素VS獲取數據爲JSON並使用javascript創建標籤

  1. GET線程列表作爲JSON字符串,並將其轉換爲對象,然後循環以上的項目並創建<li/><tr>,寫入數據(鏈接,主題)和追加到線程列表。 (jQuery的供電)

  2. GET線程列表,它包裹在HTML標籤和打印(或使用innerHTML$(e).html()

謝謝...

+0

JQuery方法是一個很好的證明框架。我們還需要什麼。 – 2012-07-07 03:36:24

回答

0

我更喜歡第二種方法。

我認爲服務器端必須將數據轉換爲JSON或html格式,那麼爲什麼不直接轉到瀏覽器能夠理解的數據並避免重新處理客戶端。你也可以很容易地適應第二種方法,以適度地降低已禁用JavaScript的用戶(這樣他們仍然可以通過標準的非JS鏈接看到結果。)

0

我不確定哪種方式更好(我假設第二種方法更好,因爲它似乎更少觸及數據),但找出最終方法是嘗試兩種方法並測量哪一種效果更好。

0

'更快'可能是第二種方法。

'更好'可能是主觀的。

例如,我一直在情況下(作爲前端開發),我不能改變服務器返回的html,我希望他們只是提供了一個json對象,所以我可以設計頁面如何我想了。

此外,(可能不是特定於您的用例),提供初始頁面加載的所有html可能會增加頁面大小和加載時間。

0

如果JavaScript需要很長時間來處理JSON並填充html,那麼服務器生成的HTML肯定會更快。

但是,爲了可維護性,JS更好。您可以通過更改JS來更改HTML生成,而不必更新服務器端代碼,製作增量版本等。

最好的辦法就是衡量它的真實速度。有時候我們認爲它很慢,但是在現實世界中嘗試一下,你並沒有看到很大的差異。您可能在傳輸JSON對象方面有重大延遲。如果您從服務器發送html表示,那麼延遲仍然會在那裏,並且事實上會增加。

所以,如果你瓶頸真的是解析JSON和生成HTML,而不是從服務器傳輸,那麼從服務器發送HTML是有道理的。

但是,您可以在生成html和解析JSON時做很多優化。有太多的技巧可以使速度更快。如果你向我展示代碼,我可以幫助你製作一個基於JS的快速實現,或者可以告訴你在服務器上執行代碼。