动态或静态创建表单?

时间:2015-03-05 14:13:35

标签: javascript html coding-style

我有一个特定的网页,需要大约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页面意味着它们可能(不确定)在每次重新绘制的页面上重新绘制。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  1. 哪种解决方案更容易理解(对于其他人,或从现在开始的几年)
  2. 哪种解决方案更易于维护? (可能会发生什么样的变化?)
  3. 我自己补充说:你如何最快地完成任务? (谁为此付费以及您已经实施了哪些解决方案)。
  4. 值得一提的是,动态版本可以创建一个通过后端等添加/删除/更改字段的界面。如果这是可取的,你可能想要那样摇摆。但是,不要设计一些你不需要的东西,这导致了这个:

    YAGNIKISS