我有一个特定的网页,需要大约 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 页面意味着它们可能(不确定)在每个重新绘制的页面上重新绘制。
正如您的评论中所述,您已经在使用 ajax 而不是全页加载来更新页面。
当你更改 dom 时,我不会担心页面重绘。很多东西可以(在浏览器内部)缓存,并且没有添加请求/响应处理。更改 dom 是可以的 - 执行整页请求很慢。
您的动态解决方案可能比将其添加为 html 页面上的静态字段并使用 javascript 显示/隐藏要复杂一些,但我不担心速度。如果您已经实现了动态版本(听起来就像您所做的那样)速度如何?
如果我是你,我会问自己:
值得一提的是,动态版本可以创建一个通过后端等添加/删除/更改字段的界面。如果这是你想要的,你可能想那样摇摆。但不要设计你还不需要的东西,这会导致这样的情况:
出于以下原因,任何已知的、定义的和静态元素都必须进行硬编码。
编写生成器脚本或使用现有脚本在开发期间而不是运行时生成元素。
这是最佳实践。