我正在编写一个类似 facebook 的发布系统,用户可以在其中输入文本评论,并立即将其显示在页面上样式和格式正确的框中,同时文本会通过 ajax 发送到后端被存储。评论本质上是 HTML5 ,但它的结构相当复杂,因此实际文本应该出现在文章中的 div 中的 div 中。我正在使用 jquery 进行 DOM 操作。
生成页面时,后端需要迭代每个评论,并将评论文本(以及海报名称、时间戳等元数据)插入 django 模板中的适当位置。
这提出了一个概念性问题 - 我现在正在代码中的两个位置复制一组相当复杂的嵌套 html 标签,其中包含适当的类和 id 名称:带有 jquery 的 js 文件以添加新注释,以及后端模板引擎生成初始页面 html。这对我来说已经是一个问题了,因为我仍在设计注释中风格上需要发生的事情,并且在我的代码中的两个位置放置这个复杂的 HTML 包已经让我绊倒了。
处理此类 HTML 重复的最佳实践是什么?我无法删除 jquery,因为我需要它来处理动态添加注释。同时,放弃 django 模板引擎的功能来构建我需要的一次 HTML 结构并根据每个评论填写详细信息似乎很浪费 - 而且我不想总是呈现空白页面和每次用户加载页面时,通过 jquery DOM 操作动态构建可能非常多的评论。有什么我没有想到的方法可以解决这个问题吗?
最佳答案
只需让 Ajax 处理 View 返回渲染的 HTML 片段,使用模板而不是 JSON,并且 jQuery 只是将它们插入到正确的位置,而不是从原始数据构建它们。
关于jquery - 如何避免在 javascript 和后端中重复 HTML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12953109/