我有一个django景,而这一观点返回的一个表,它是异步填充有一个阿贾克斯的电话。

从设计的角度来看,这一个我应该遵循:

  1. django看来,通过阿贾克斯,返回的内容表作为json响应,包含html标记的每个细胞。Javascript回调处理程序的内容和拍打它们触及到表中的细胞。
  2. django看来,通过阿贾克斯,回返纯粹的数据关于什么应该进入该表,再次作为一个json响应。异步javascript回调需数据、格式他们有适当的标记,并把它放到桌上。

换句话说,谁应有责任标记的单元格内容的格式?视或javascript?

我会忍不住要说的第一个,因为查看已经返回标记的内容。如果返回json含有标记的内容,没有多少差别。

我想听听你的观点。

没有正确的解决方案

其他提示

如果你填充的整个表,你可以把你表在其自己的模板和返回的表html通过ajax/手机中。

你会需要编辑的原始模板包含的表格的模板:

 {% include "myapp/_table.html" %}

和景,返回所呈现的模板作为json变量,其javascript将取代:

 return { 'table': render_to_string("myapp/_table.html", context) }

这种做法是很好的,你总是想要更新的整个表,以及渲染的表并不需要完整的背景下。我不确定什么样的性能,但这是一个干净的方式更新网页的一部分,因为你只定义表一次。

它取决于(经常).

如果数据被请求只有在这里和现在,它会更容易,更容易出错的只是让它在服务器上呈现与一组相同的模板,这些模板已经呈现的标准图。

如果你能想到的使用情况然而,其中的数据,将需要在其他地方(如自动完成的领域),就能更好地让JavaScript做的工作,并创造一个干净的、可重复使用的JSON出口。

这些选项添加到所有其他的答案,以及最后,它是由你来决定。

在一个 MVP 系统如Django、观决定哪些数据应该显示的,该主持人决定如何,它应该显示出来。因此JavaScript应该做大部分的格式,除非证明intractably难以这样做。

这是一个良好的实践Unabstrusive javascript,也称为一些人因为 Hijax

那么,你第一次有一个标准页,提出了表以及其他网页,表在一个特定的django模板块。

一旦你有了这个,你可以包括延伸部分的django模板内的一个"如果没有ajax",所以你只能得到所需的表一部分的响应阿贾克斯,你可以载在客户所需要的div。

这是联合国必要的冗余,以保持标记两次,一次在服务器一旦在的客户,在javascript。

因此,我喜欢第一个选项,服务器redering,客户只有载入呈现html。

我碰到过几次之前,我通常选择后者,那里的图返回纯净的手机中。

但是,你选择办法肯定应该取决于若干因素,其中之一是有针对性的设备(以及他们的中央处理器/网络的约束)。纯JSON一般会导致较小有效载荷,因此可能最佳的移动设备。

它还可以有意义的让HTML。版本的内容。这是特别有益的,如果你要找到创建一个非常轻API在某些点上为您的网站。

最后,可以使用一个图书馆,例如约翰Resig的 微模板封闭的模板 为了简化客户的侧HTML的产生。

我会去的第一选择,正弦它提出了更利于使用者:网页载瞬间(没有等待异步通话),没有JS需要(例如为移动装置)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top