我目前正在创建一个“类似 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/