动态或静态创建表单?

问题描述 投票:0回答:2

我有一个特定的网页,需要大约 6 种不同的表格;其中一些是最多 15 行的唯一标签和输入。

我制作了一个JavaScript库,它可以接受一个大对象并输出一个表单。基本上,它接受无限的对象,例如:

var myForm = {
   row1 : {
       label : { text : 'First Field'}
       input : {
            type : 'dropdown',
            values : { 1 : 'Enabled', 0 : 'Disabled'}
       } 
   }
}

..等等。

然后我意识到,也许最好用 HTML 键入每个表单,将其放置在 HTML 页面上并隐藏它直到需要为止(它们以覆盖层的形式实现)。不过我认为这可能被视为不好的做法,因为:

1) 页面处于长时间轮询状态,每 5 秒更新一次,从而重新绘制页面。它会重新绘制隐藏的东西,比如表格吗?

2) 我的 HTML 文件会很大

我的问题是:我应该简单地用 HTML 存储一个页面的大量表单,还是应该动态创建它们。动态创建它们仍然意味着我的 javascript 文件中将包含大型对象。将它们静态嵌入 HTML 页面意味着它们可能(不确定)在每个重新绘制的页面上重新绘制。

javascript html coding-style
2个回答
1
投票

正如您的评论中所述,您已经在使用 ajax 而不是全页加载来更新页面。

当你更改 dom 时,我不会担心页面重绘。很多东西可以(在浏览器内部)缓存,并且没有添加请求/响应处理。更改 dom 是可以的 - 执行整页请求很慢。

您的动态解决方案可能比将其添加为 html 页面上的静态字段并使用 javascript 显示/隐藏要复杂一些,但我不担心速度。如果您已经实现了动态版本(听起来就像您所做的那样)速度如何?

如果我是你,我会问自己:

  1. 哪种解决方案更容易理解(对于其他人,或者多年后的你自己)
  2. 什么解决方案更容易维护? (可能会发生什么样的变化?)
  3. 我为添加此内容而自责:你如何最快地完成任务? (谁为此付费以及您已经实施了什么解决方案)。

值得一提的是,动态版本可以创建一个通过后端等添加/删除/更改字段的界面。如果这是你想要的,你可能想那样摇摆。但不要设计你还不需要的东西,这会导致这样的情况:

YAGNIKISS


0
投票

出于以下原因,任何已知的、定义的和静态元素都必须进行硬编码。

  1. 性能
  2. 简单
  3. 错误更少

编写生成器脚本或使用现有脚本在开发期间而不是运行时生成元素。

这是最佳实践。

© www.soinside.com 2019 - 2024. All rights reserved.