2012-07-03 222 views
0

我想知道做Ajax調用更新用戶名列表的最佳選擇是什麼。我可以是客戶端與服務器端模板

a。做ajax調用並獲取用戶對象並生成html並將其附加到div中

build_html = function(obj) { 
    html = 'username - ' + obj.username 
    $('#container').append(html); 
} 

b。做一個ajax調用並讓django返回html。

response = render_to_response ('user_item_template.html', {'user' : user}) 
return response._container 

如果響應成功,我然後將其附加到容器div。

是否有任何缺點與方法'b'這樣做,因爲根據情況建設在javascript中的HTML可以有問題,如非轉義角色,它只是一般凌亂。

感謝

回答

7

如果您要求的東西,將僅被用於生成HTML,那麼就返回HTML作爲響應。無需涉及客戶端,並且您的服務器在整個生成過程中總是會更快,特別是在使用緩存時。

如果你需要數據從響應,即你可以稍後反思的東西在你的JS做決定,那麼你需要返回JSON並處理任何HTML客戶端的生成。

基本上,如果你可以通過返回平坦的HTML來做到這一點。

0

我想說這取決於...在大多數情況下(特別是如果您關心具有較慢(er)連接的移動用戶)傳輸較少的數據比解析JSON和生成HTML客戶端所花費的時間更重要 - 側。

推薦閱讀:http://ryanflorence.com/2012/client-v-server-templating/