在全局数组中包含数千个对象是否切实可行?

时间:2011-08-02 12:40:15

标签: javascript global-variables code-organization

假设我在JS中有一个名为App的全局数组。

var App = {};

现在,我们建立了数十种形式。每个表单可能有几十个对象(按钮,网格,面板,标签等)。

另外,我们的应用程序有不同的范围,如WorkOrders, Leases, etc

那么,假设我可以像以下一样保持一切清洁是否安全:

var App = {};
App.Leases = {};
App.WorkOrders = {};

App.Leases.myGrid = Ext.grid.GridPanel({});
App.Leases.btnNewButton = Ext.Button({});

App.WorkOrders.searchGrid = Ext.grid.GridPanel({});

这有多大意义吗?我正在开始一个新的应用程序,它将变得非常大,我们正在寻找新的方法来保持组织有序(与之前的项目相比)。

您对这种技术有何看法?

1 个答案:

答案 0 :(得分:3)

根据我的理解,这非常简洁,可以跟踪数据,并保持组织良好。

当您计算复杂的体系结构时,您应该关注的是对DOM的影响,因为这会降低页面呈现和交互的速度(特别是对于旧浏览器)。请记住,声明全局变量App = {};将在窗口对象树中创建一个新项目。

话虽如此,我会考虑三个要点:

  • 只在需要时全局存储数据而不是控制引用(再次从我的理解中无需存储控件引用...如果你仍然需要跟踪,你应该考虑存储控件ID)

  • 使用这种全局模式存储控件的风险很可能因circular references导致内存泄漏而结束......所以请你自己帮忙,在这样做之前再考虑两次。< / p>

  • 不要加载可能不会被使用的东西,但更喜欢延迟加载...意味着按需加载一次,然后根据需要缓存加载的数据。

你应该在开发过程中看看JSLint,以便最终不会有大的惊喜:)

希望这有帮助