动态或静态地创建表单
Create forms dynamically or statically?
我有一个特定的网页,需要大约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显示/隐藏更复杂,但我不担心速度。如果您已经实现了动态版本(听起来像您实现了),的速度是多少?
如果我是你,我会问自己:
- 什么解决方案更容易理解(对其他人或几年后的自己来说)
- 什么解决方案更容易维护?(可能会发生什么样的变化?)
- 我为添加以下内容而自责:你如何最快完成任务?(谁为此买单,您已经实施了什么解决方案)
值得一提的是,动态版本可以创建一个接口,通过后端等添加/删除/更改字段。如果这是可取的,你可能想以这种方式摇摆。但不要设计一些你还不需要的东西,这会导致以下情况:
YAGNI和KISS
相关文章:
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 动态或静态地创建表单
- 如何创建表单输入框的id
- 使用javascript创建表单并将输入带回php
- 从JSON模式创建表单,如何添加关闭按钮
- 如何从json模式创建表单
- 在不同的模型中获取模型id会在主干中创建表单
- 如何创建表单元素输入框,标签使用javascript onclick
- 动态创建表单轨道
- 使用 Javascript 创建表单
- 根据Google Apps Script中的答案创建表单问题
- 使用 jQuery 创建表单形式的查询字符串不起作用
- 如何使用 angularjs 动态创建表单
- 如何创建表单以生成 URL
- 如何为请愿书创建表单
- 当我单击编辑表单时,角度自动填充创建表单的问题
- 如何使用javascript动态创建表单标记
- 如何使用DOM元素创建表单的副本
- AJAX在更改时创建表单/表
- 使用AJAX/jQuery动态创建表单时多次提交