2010-10-29 69 views
5

我想知道什麼是最好的「格式」的數據被髮回到JavaScript的? 什麼時候應該使用JSON字符串或純粹的HTML?除了這兩個之外還有其他選擇嗎?jQuery/AJAX - 響應格式

回答

6

這取決於發回的數據是什麼以及您打算如何使用它。

優點和缺點:

  • 使用JSON數據和生成HTML的JavaScript把瀏覽器和負荷較小的服務器上更多的負荷,再加上無需代碼表示邏輯到走秀的頁面數據。而JSON數據通常要小得多。

  • 使用HTML數據並直接注入頁面會在服務器上放置更多的工作,導致AJAX服務頁面包含表示邏輯。但是,如果表示邏輯已經包含在服務器端代碼中(直接或通過模板語言),並將表示邏輯放到JavaScript端,則需要從頭開始開發它,這可能是一個好處,而不是缺點。

換句話說,使用JSON數據IFF:

  • 你的頁面將使用JSON數據比一次性生成HTML的其他用途。 DUH。

  • 您的頁面已經包含基於數據構建HTML的JavaScript邏輯,或者如果創建這樣的邏輯非常容易開發成本。特別是如果情況正好相反(例如,將HTML生成邏輯放在服務器端需要完成並且會帶來顯着的開發成本)。

  • 將數據從服務器轉換爲HTML到瀏覽器的卸載資源成本是一個重要的考慮因素。

  • JSON數據明顯小於生成的HTML,因此導致傳輸數據的主要減少。這加快了服務器執行和網絡傳輸速度。實際上,我們通過以json方式傳輸樹數據而不是已經生成的HTML代碼,從而使複雜的樹顯示應用程序的速度提高了20倍。

  • 如果其他可能/實際使用者無法100%重複使用爲該特定頁面生成的HTML,則可以將產生響應的URL用作除此頁面之外的其他用途的服務。

+0

謝謝你的非常詳細的回答:) – Alex 2010-10-29 19:52:26

2

你想使用JavaScript中的數據,然後從這些數據構建DOM?使用JSON字符串。

你只是想在一個佔位符的頁面上轉儲某些東西而沒有任何邏輯嗎?使用純HTML。

1

json幾乎總是首選,特別是如果您需要進行任何類型的錯誤處理。如果你不想並且只想返回預格式化的HTML來放置在DOM中,那麼返回純HTML就足夠了。

+1

我幾乎不會說JSON幾乎總是首選。多數情況下,我的服務器端應用程序知道如何更好地格式化正在生成的標記。服務器還可以產生比客戶端更快的最終標記,從而導致客戶端的性能提高。 – 2010-10-29 18:53:53