【发布时间】:2011-07-06 12:38:48
【问题描述】:
想象一个评论网站,用户可以在其中输入评分和可选的简短 cmets。
在每个评论页面上,您都有许多 cmets - 它们显示在页面末尾的表格中(顺便说一句 - 不是在寻找数据网格类型的控件,这太简单了)
我想让用户在不刷新页面的情况下输入新评论并更新页面。(到目前为止都是简单的东西,这不是问题)
什么是为页面生成的好方法。一些想法:-
在服务器端生成评论 HTML,使用 javascript 客户端附加新评论。缺点是您在两个地方有表格 HTML 生成代码。 优势 - 就搜索引擎而言,页面上有更多内容。
-
服务器端仅将评论输出为 json/xml/whatever 并使用 javasript 在页面加载时动态呈现 HTML。
缺点 - javascript 中的“模板”,设计师难以自定义 + 页面上缺少“内容”。
-
是否有一种方法可以将这两种方法结合起来 - 即一个模板框架,它将呈现现有的数据服务器端,但也发送模板片段客户端,以便在那里可以重用它进行添加/编辑。
-
使用 (2) 来获取初始页面加载时的数据您会
a) 在初始页面中包含 json/xml 并在页面加载时运行客户端渲染
b) 在页面加载时通过单独的 AJAX 调用获取它(+ 更简单,- 额外的请求和延迟)
我专注于 jQuery/Django,但这个问题适用于其他框架和 AJAX 库。
这个问题有点主观,希望不要越界!想法?
【问题讨论】:
-
使用框架,(3)的一种方法是使用“部分”视图来呈现评论。服务器端代码循环通过现有评论并调用部分以一个接一个地呈现它们,作为呈现父页面的一部分;添加新评论时,javascript 会要求服务器呈现该新评论的部分内容并将其返回给客户端,并将其附加到页面上的现有评论中。
-
Matt - 我喜欢这个想法,并将进一步调查 - 如果你愿意,可以将其作为答案加入,确保获得积分和奖品 ;)