如何避免在javascript和后端中复制HTML?

时间:2012-10-18 11:01:59

标签: jquery django code-duplication

我正在编写类似于Facebook的发布系统,用户可以在其中键入文本注释,并使其在页面中以正确样式和格式化的框显示,同时文本是后端的ajax存储。注释基本上是一个HTML5,但它的结构相当复杂,因此实际文本应该出现在文章中div内div的div中。我正在用jquery做这个DOM操作。

生成页面时,后端需要迭代每个注释,并将注释文本(以及海报名称,时间戳等元数据)插入到django模板中的适当位置。

这提出了一个概念性问题 - 我现在在我的代码中的两个地方复制了一组相当复杂的嵌套html标签,其中包含适当的类和id名称:带有jquery的js文件以添加新注释,以及后端模板引擎生成初始页面html。这对我来说已经是一个问题,因为我仍然在设计确切需要在评论中以风格方式发生什么,并且在我的代码中的两个地方使用这个复杂的HTML包已经让我失望了。

处理此类HTML复制的最佳做法是什么?我无法删除jquery,因为我需要它来处理动态添加注释。与此同时,放弃django的模板引擎的力量来构建我需要的HTML结构并在每个注释的基础上填写细节似乎是浪费 - 而且我不想总是呈现空白页面和每次用户加载页面时,使用jquery DOM操作动态构建可能非常多的注释。有没有我想不到的东西会解决这个问题?

1 个答案:

答案 0 :(得分:3)

只需使用模板而不是JSON来获取Ajax处理视图以返回呈现的HTML片段,并且jQuery只是将它们插入到正确的位置,而不是从原始数据构建它们。