2010-10-22 17 views
2

嗨大家好,我一直在想大多數網絡應用程序目前的工作方式。如果作爲例子後端是用java/php/python編寫的,你可能會看到後端是「回顯/打印」HTML,準備好瀏覽器,對。僅使用json對象進行通信的WebApp?

對於幾乎完全使用ajax工作的網絡應用程序,是否有一個原因,不是簡單地與html進行通信,例如僅僅通過使用JSON對象在服務器和客戶端之間傳遞回來和第四次,而不是「打印或迴應「html在我們的腳本/應用程序後端,我們簡單地回顯json字符串,ajax提取它並將JSON字符串轉換爲具有我們所有屬性/數組等的對象。

肯定這樣我們發送的字符就少了,沒有html標籤等等,而在客戶端我們只是使用框架如jQuery等,並在那裏創建/格式化我們的html,而不是打印和回顯html中的html服務器腳本?

也許人們已經這樣做了,但我還沒有真正看到很多應用程序以這種方式工作? 原因是我想要這樣做是因爲我想分開的表現層和邏輯比目前更多,所以而不是「回聲」在我的Java/PHP中的HTML我只是「回聲」JSON對象和JavaScript照顧整個表示層,是否存在根本性錯誤,您有什麼意見?

再次感謝Stackoverflow。

+0

這就是我這樣做的方式。 – Brad 2010-10-22 16:58:06

+0

那就是我這樣做的方式。 – unomi 2010-10-22 17:15:54

+0

好吧然後我有一個後續問題;-)所以說你這樣做,然後我想你創建你的DOM節點的JavaScript,divs等..你怎麼不混亂JavaScript代碼與HTML代碼?你有創建div等的特定功能,或者你在一些單獨的JS文檔中預定義了一些html代碼? – quiggle 2010-10-22 17:29:40

回答

3

有很多應用程序以這種方式工作(只需使用JSON對象通過AJAX進行通信而不是發送標記)。

我工作過一些,它有它的優點。

在某些情況下(例如處理大型結果集時),在服務器端渲染標記並將其發送到瀏覽器會更有意義。這樣,你不依賴於JavaScript/DOM操作來創建一個大文檔(這取決於瀏覽器,表現不佳)。

+0

是的,我想大的結果集DOM可能會放慢速度,但是當你說大的結果集時,你說的是我想象的一個巨大的表格?你認爲什麼是「大」的結果集?我們的用戶都有Firefox感謝上帝,所以很多令人頭疼的事情都消失了;-) – quiggle 2010-10-22 16:47:31

+0

您將永遠擁有比服務器更多的瀏覽器。 ;) – unomi 2010-10-22 17:16:36

0

這是一個非常明智的方法,實際上在我們的一些生產應用中使用。

該方法的主要缺點是,它增加了瀏覽器資源方面的負載,因此可能 - 根據瀏覽器往往已經低迷的JS性能 - 導致更糟糕的用戶體驗,除非表示層機制非常好調整。

+0

我發現相反。如果編寫得很好,瀏覽器通常會更快地將數據(json/xml)轉換爲html,而不是網絡傳輸生成的html。 – CaffGeek 2010-10-22 16:59:26

+0

@Chad - 如果瀏覽器已經從其他10個標籤中運行:( – DVK 2010-10-22 20:52:17

0

現在很多webapps都使用這種方法,比如gmail和其他大型應用程序,甚至facebook這個方法的主要優點是這個方法的主要優點是用戶不需要刷新所有的頁面,並且他得到我們想要展示給他的東西或他想要的東西。
但是如果用戶刷新頁面,我們必須使ajax和普通頁面這兩個版本都刷新。
我們可以使用生成html的jquery模板,也可以使用谷歌的更接近的,這是由Gmail和其他谷歌產品使用。

相關問題