2015-10-14 118 views
0

我正在構建一個應用程序來保存小筆記和註釋。 該應用程序將要求您提交一個標題,它會爲您提供文本區域的文字。在PHP中返回HTML JSON響應

直到現在,當您提交標題時,我使用jquery創建了標題 - 文本區域對,供您輸入文本。

我想通過JSON返回這對,但有人告訴我,這是不好的做法。

通過Jason返回HTML真的是不好的做法,爲什麼?

回答

1

JOSN是爲了克服龐大的用於數據交換的XML格式而設計的。它實際上是James所描述的輕量級數據交換格式。 假設:您需要顯示包含與產品相關的所有信息的產品的動態列表。如果您在JSON中返回完整的HTML,則其大小爲2048個字符。但是,如果只返回沒有HTML標記的產品名稱和實際信息,則響應文本字符串大小將小於2048個字符,因爲您省略了非真正需要的HTML標記,所以它只能包含100個字符。 因此,您可以擁有輕量級的數據版本,然後使用客戶端腳本將其插入到HTML標記中。這將使您的應用程序更快,因爲數據量很小,傳輸少量數據(字符)的速度總是比大數據(字符)快,所以您必須等待較少的服務器響應。

XML包含重標記因此JSON被看作爲用於更快的數據傳輸的替代方案。

1

JSON(JavaScript對象符號)是一種輕量級的數據交換格式 http://www.json.org/

的HTML DOM結構應該被創建並使用JSON來交換數據。

一旦你檢索到數據創建動態DOM元素是公平的遊戲。

1

幾個密切相關的問題:

Why is it a bad practice to return generated HTML instead of JSON? Or is it?

How dangerous is it send HTML in AJAX as opposed to sending JSON and building the HTML?

據我所知,這不是不好的做法,一個JSON對象中返回一個HTML字符串。對於第二個問題,接受的答案似乎都同意:

請求和對大型數據集返回JSON,但包括在JSON記錄的每個記錄(逃脫) HTML代碼段。這意味着更多的渲染時間和更多的帶寬使用比(2)更多,但可以減少 往往復雜的HTML渲染。

1

這真的取決於你打算如何實現你的想法。正如你提到的JSON,我最好的猜測是你試圖實現AJAX。那麼,雖然可以返回任何類型的內容編碼爲JSON對象,但我不明白爲什麼您需要通過JSON從服務器發送像text-area這樣的HTML元素。 AJAX用於製作服務器請求並且客戶端希望獲得響應而不刷新發送請求的頁面的場景。最常見的用法是登錄頁面上的用戶名和密碼驗證。

我想你應該清楚地瞭解服務器端腳本和客戶端腳本。你已經使用jquery實現的東西被稱爲客戶端腳本,而這正是應該如何完成的。至於從PHP獲取數據,這是在您需要從位於服務器上的數據庫讀取一些數據時完成的。例如,只有輸入了有效的標題(在數據庫中有條目)時,纔會顯示text-area。我在這裏看不到任何要求。

+0

使用通過AJAX請求返回的JSON信息動態構建複雜的HTML結構可能非常耗時,特別是在服務器上已經存在可用於構建複雜的HTML服務器端的查看部分時。將已經構建的(轉義的)HTML作爲JSON對象的一部分返回(而不是用JavaScript重寫現有的服務器端代碼)是否存在特定的缺點? – rawb