jquery - 如何避免在 javascript 和后端中重复 HTML?

标签 jquery django code-duplication

我正在编写一个类似 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/

相关文章:

javascript - JQuery datepicker - 如何更改特定开始日期的最大日期?

jquery - toggleClass makes 保留两个类

javascript - jQuery find() 返回未定义

python - Unicode Django URL 参数

java - 删除重复代码的模式

javascript - 如何使用 jQuery 在输入中用逗号替换换行符?

python - Django celery 具有特定并发的多个工作人员

python - 检查成员值是否与之前迭代中的不同

javascript - 重构代码——变量作用域

django - 以编程方式创建 Django 模型