3 回答
TA貢獻1884條經驗 獲得超4個贊
我實際上是雙方都有點:
當我在javascript方面需要的是數據時,我使用JSON
當我在javascript方面需要的是我不會做任何計算的演示時,我通常使用HTML
使用HTML的主要優點是,當您想要使用Ajax請求返回的內容替換頁面的完整部分時:
在JS中重新構建頁面的一部分是非常困難的
您可能已經在服務器端有一些模板引擎,它首先用于生成頁面...為什么不重用它?
我通常不會真正考慮事物的“性能”方面,至少在服務器上:
在服務器上,生成一部分HTML或一些JSON可能不會產生太大的影響
關于通過網絡的東西的大?。汉冒?,你可能不會使用數百KB的數據/ html ...在你傳輸的任何東西上使用gzip會產生最大的不同(不是在HTML之間選擇)和JSON)
但是,可以考慮的一件事是,客戶端需要從JSON數據中重新創建HTML (或DOM結構)的資源...將其與將部分HTML推入頁面進行比較; - )
最后,有一點非常重要:
你需要多長時間來開發一個新的系統,將JS作為HTML注入頁面所需的JSON +代碼發送數據?
返回HTML需要多長時間?如果您可以重用一些已有的服務器端代碼,可以使用多長時間?
并回答另一個答案:如果您需要更新頁面的多個部分,仍然有解決方案/黑客將所有這些部分發送到一個大字符串中,該字符串將多個HTML部分組合在一起,并在JS中提取相關部分。
例如,您可以返回一些如下所示的字符串:
<!-- MARKER_BEGIN_PART1 -->here goes the html code for part 1<!-- MARKER_END_PART1 --><!-- MARKER_BEGIN_PART2 -->here goes the html code for part 2<!-- MARKER_END_PART2 --><!-- MARKER_BEGIN_PART3 -->here goes the json data that will be used to build part 3 from the JS code<!-- MARKER_END_PART3 -->
這看起來并不是很好,但它確實很有用(我已經使用了很多次,主要是當HTML數據太大而無法封裝到JSON中時):你正在為頁面的各個部分發送HTML需要演示,并且您正在為您需要數據的情況發送JSON ...
...為了提取這些,我猜想JS子串方法會起作用;-)
TA貢獻1796條經驗 獲得超4個贊
好,
我是那些喜歡以這種方式分離事物的少數人之一: - 服務器負責提供數據(模型); - 客戶負責顯示(查看)和操縱數據(模型);
因此,服務器應該專注于交付模型(在這種情況下,JSON更好)。這樣您就可以獲得靈活的方法。如果要更改模型的視圖,可以讓服務器發送相同的數據,只需更改將數據更改為視圖的客戶端javascript組件即可。想象一下,您有一臺服務器向移動設備和桌面應用程序提供數據。
此外,這種方法提高了工作效率,因為服務器和客戶端代碼可以同時構建,永遠不會失去焦點,這是當你從js切換到PHP / JAVA /等時會發生的事情。
一般來說,我認為大多數人更喜歡在服務器端盡可能多地做,因為他們不掌握js,所以他們試圖盡可能地避免它。
基本上,我和那些正在研究Angular的人有同樣的看法。在我看來,這是Web應用程序的未來。
添加回答
舉報
