动态或静态地创建表单

Create forms dynamically or statically?

本文关键字:创建 表单 静态 动态      更新时间:2023-09-26

我有一个特定的网页,需要大约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显示/隐藏更复杂,但我不担心速度。如果您已经实现了动态版本(听起来像您实现了),的速度是多少?

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

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

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

YAGNI和KISS