javascript - 使用 HTML 元素作为 "template"更好还是在 JavaScript 中动态生成 HTML 更好?

标签 javascript jquery html

我目前正在创建一个“类似 facebook 的”新闻提要,我想知道我是否最好拥有 1.) HTML 中的一个元素,我在 JavaScript 中克隆该元素并附加从我的 JavaScript 中获取的数据ajax 调用在正确的位置,或者 2.) 如果在 javascript 中生成整个元素会更好。

就最佳实践而言,什么是更普遍可以接受的并且可以让我获得最佳的可扩展性?

这是否可能是基于情况的答案,或者在这种情况下我应该在我的网站上坚持使用明确的答案吗?

我认为选项 2 的一个缺点是,在 javascript 中编写 HTML 通常不是一个好主意。

选项 1 的一个缺点可能是,如果我尝试开始操纵状态的整体结构,那么它在不同的页面上是不同的,它会很难跟踪,而且我可能会把事情搞砸。

最佳答案

我认为答案因情况而异。它因模板的大小和复杂性等而异。我倾向于使用 HTML 页面中的 HTML 模板(这样我可以使用我的创作工具等)并克隆它们。我小心地避免将 JavaScript 代码与 HTML 的特定结构联系起来(而是更喜欢类名、name 属性和/或 data-xyz 属性作为标记事情去向)。这使您可以更改 HTML(并在不同的页面上使用相同的数据使用不同的 HTML),而不必担心破坏您的 JavaScript 代码。只需确保标记存在(或者不存在,如果您想在特定页面上留下一些信息。)

我将在您的两个选项中添加第三个选项:

3) 让 ajax 返回一个 HTML 片段,您只需将其附加到页面即可。

如果您已经在服务器端使用某种模板技术来生成 Feed 的初始部分,则最后一项非常有用,因为这样您就可以将代码放在一个位置而不是两个位置。

关于javascript - 使用 HTML 元素作为 "template"更好还是在 JavaScript 中动态生成 HTML 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969513/

相关文章:

javascript - 我需要在一段时间后关闭弹出窗口

javascript - Angular ngIf 在两个子组件之间切换时导致高度 CSS 转换

javascript - 单击其他列表项时淡出

javascript - 使用自定义方案打开应用程序 - 防止 "open in <appname>"警告?

javascript - 防止从 <button> 元素选择文本

javascript - 如何控制所有开发者使用相同的库版本?

javascript - 使用 PIXI JS 更改弯曲文本中的字体大小

javascript - 如何在php中传递jquery日期参数

javascript - 通过 Jquery 中的下拉输入动态更新复选框选项

javascript - HTML5 Canvas 在绘图时闪烁