2012-03-29 94 views
0

我正在寻找一些设计“最佳实践”或启发式方法来解决网页上的性能问题。创建用于选择选项的网络弹出窗口

基本上,下拉菜单最多有10,000个选项,每个选项都在一个标签中。所以我在DOM模型中有成千上万个额外的节点。我认为这会减慢加载后解析文档的JavaScripts,但它也会减慢初始页面加载的速度,从而无法获取所有数据。

我想将这些下拉菜单完全从页面中提取出来,因此它不会包含组合框样式控件,而会链接到包含选取列表的模式弹出框。我认为在客户端上预加载并缓存这些弹出窗口可以防止加载初始页面的速度变慢,并且可以从DOM中获取所有这些10,000个以便现有脚本性能得到改善。

由于我在web开发方面的经验有限,我不确定最好的方法是为最初的方法创建某种页面/控件/服务/等。一旦我确信我正在使用正确的方法,我应该能够弄清楚细节。

+0

也许为了简化问题......我应该创建一个模式窗口,还是应该创建一个控件?控件的许多选项是否会出现在文档对​​象模型中?我错过了不同的方法吗? – Paul 2012-03-29 17:57:46

+0

下拉式数据来自数据库? – Pankaj 2012-03-29 18:11:25

+0

它来自DB – Paul 2012-03-29 18:56:53

回答

0

下拉选择会经常更改还是静态更改?如果它们是静态的,你可以在后面的VB代码中将列表维护为enum,并且下拉列表使用enum作为其数据源。

如果它们是动态的,我会尽可能地探索将列表打破,让更小的块可以让用户从一般到更具体的项目“钻取”。例如,如果此下拉列表类型的动物,你可能有一个初步的下拉子集:

Mammals 
Reptiles 
Amphibians 

在选择上面的一个,说Mammals,然后你打的数据库更具体的子集:

Apes 
Marsupials 

最后,最具体的子集,如果他们选择Apes

Baboon 
Chimpanzee 
Human 
Orangutan 

如果列表不能以这种方式被分解,T如果我尝试实施Google即时式自动填充功能。如果您阅读jQuery,则会有一个自动完成控件用于此目的;你应该能够将它绑定到数据库,以便能够查询用户类型,从而减少结果。

+1

,它不能作为枚举硬编码到页面上(它很少发生变化)。这里的建议是使用jquery/ajax自动完成。我要去调查一下 – Paul 2012-03-29 19:00:01