2012-07-03 225 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/