2

我正在编写一个类似 facebook 的发布系统,用户可以在其中输入文本评论并让它立即出现在页面上的一个正确样式和格式的框中,同时文本被 ajax'd 到后端进行存储。评论基本上是 HTML5 ,但它的结构相当复杂,因此实际文本应该最终出现在文章中的 div 中的 div 中的 div 中。我正在用 jquery 做这个 DOM 操作。

生成页面时,后端需要遍历每条评论,并将评论文本(以及海报名称、时间戳等元数据)插入 django 模板中的适当位置。

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

处理这种 HTML 重复的最佳实践是什么?我无法删除 jquery,因为我需要它来处理动态添加评论。同时,放弃 django 的模板引擎的功能来构建我需要的 HTML 结构并在每个评论的基础上填写详细信息似乎很浪费 - 加上我不想总是呈现空白页面和每次用户加载页面时,使用 jquery DOM 操作动态构建可能非常多的评论。有什么我没有想到的可以解决这个问题吗?

4

1 回答 1

3

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

于 2012-10-18T11:08:42.863 回答