求b/s系统中数据超过10000后页面打开速度太慢的解决方案

chuqunpeng 2006-08-01 09:13:58
1.目前是b/s系统
2.用combobox绑定了一个表的数据(超过10000行),文件大小>1M
3.有的页面要用好几个这样的功能,页面大小接近2M
4.这个combobox能够根据输入自动匹配

问题:网页太大,客户通过浏览器打开很慢(不是程序慢,是下载慢)

求解决方案:
最好是b/s的系统,因为c/s的客户要装.net framework
如果能实现在客户端生成个access或者xml什么的,存储这些大量的数据,然后每次使用只要到服务器更新增加的数据(有个问题,要是是修改或者删除了数据怎么办?),这样页面打开就比较快了。

请问各位有什么好的思路?先谢谢了。
...全文
2459 90 打赏 收藏 转发到动态 举报
写回复
用AI写文章
90 条回复
切换为时间正序
请发表友善的回复…
发表回复
chuqunpeng 2006-08-04
  • 打赏
  • 举报
回复
人多,分少,到后来没分了,后面的朋友不好意思啊。
chuqunpeng 2006-08-04
  • 打赏
  • 举报
回复
现在已经决定使用activeX的方法了,结贴。谢谢各位朋友的帮助。
CJEZZ 2006-08-03
  • 打赏
  • 举报
回复
我是刚准备跨入编程的菜鸟,原来对编程的感觉是枯燥,很难。但是看了各位前辈的交流和辩论我觉得编程是十分有趣取的
希望那位前辈能指导我一下我要做的第一步
yzx110 2006-08-03
  • 打赏
  • 举报
回复
非要那么干也可以,可以把你的1w条数据生成xml文件,然后用XmlHttpRequest把xml文件取下来,然后再帮定到combobox上。

这里需要注意的是,需要对 IIS启用 压缩功能,并且要启用对xml的压缩,xml压缩后会非常小。

具体可以实现参照Ajax, IIS起用压缩,baidu/google 搜索一下就可以,具体实现就不说了
chuqunpeng 2006-08-03
  • 打赏
  • 举报
回复
下载速度慢,我知道,我的领导也知道,领导的领导也知道,领导的领导的业务员也知道。
他们都知道慢,他们就是不想太慢,进度条?打开页面的时候IE的状态栏上有。

这个需求是有的,要绑定10000条,是因为要适应不同业务员的输入自动匹配。而且不能根据业务员的业务范围缩小数据,因为数据库没有设计,数据也是历史积累的,而且会越来越多。而且这个页面不光业务员要用,管理员也要用来添加修改。管理员要求的数据是完全的。

其实就像我上面说的那个问题一样:“把combobox加入到datagrid的编辑列里面”
如果编辑的时候我弹出或转到一个页面,这样不光本页面数据变小,实现也不这么难,但是不行,就要在编辑状态下加上combobox,这样一个页面至少有1个产品combobox,一个定单combobox,数据量*2了。
zhf777 2006-08-03
  • 打赏
  • 举报
回复

用户看到10000条数据时也就晕过去了
puny 2006-08-03
  • 打赏
  • 举报
回复
10000条就是存放在客户端了,用户也不好选择呀
我认为直接用ajax做模糊查询比较合理,比如 ,输入R后把首字母为R的都过滤罗列出来
AJAX使用很简单,要不用xmlhttp也可以(就是多写代码)
henryfan1 2006-08-03
  • 打赏
  • 举报
回复
当IE在处理大量元素时没有可能不慢。
用Atlas不慢不见得,关键是要看处理元素的数量。

不过楼主的问题应该是数据太多,导致ViewState非常大。因此IE处理的数据非常多。
combobox绑定10000条以上,竟然有这样的需求(客户如何选择)?
happysleep 2006-08-03
  • 打赏
  • 举报
回复
其实这么大的数据,1M,用户看也要很久的。
所以慢也会接受的,也许唯一不能接受的是长时间没有响应。
所以,你先打开页面,然后下载数据,别忘了,很重要的,要给个进度条。一个不行就来两个。上快下慢的那种。
这样也许能行。
跟你们领导沟通下吧
chuqunpeng 2006-08-03
  • 打赏
  • 举报
回复
谢谢各位的帮助。
我领导的确是开发c/s的,用vb。
所以现在做什么都想在一个页面里面完成,包括现在出了个问题。
****要把combobox加入到datagrid的编辑列里面,不知道这里的combobox的数据如何绑定?****

关于方案的设计:是我们领导的意思。多说点:来公司一个月吧,原来是在access里面的系统,就是个单机版的。现在美国的老板要回来,所以要做个大体的样子给他看看。关于这个系统的需求领导说等他会写的。但是有一点,就是页面不要多。比如产品吧,一个页面里面查询,修改,新增都要有,通过权限来区分操作。
“把combobox加入到datagrid的编辑列里面”就是为了在一个页面里面查询后新增或者修改。

上面那位朋友说的“统计学”的思路很好,在未来也许有很好的发展空间。

不撞南墙不回头?我估计这次撞的头破血流也回不了头了。领导的意思很明确,所有业务一个页面,简单的操作,尽量傻瓜,速度可以忍受就行,10秒以内。

wobelisk() ,上面有朋友提过缓存的思路了,只是说的不详细,不知道在.net里面怎么使用,如果有什么资料的话提供一下,给其他有这个需要的朋友提供点帮助。
我领导已经说要用activeX来做了,因为他对这个比较熟。
pray1997 2006-08-03
  • 打赏
  • 举报
回复
用户输入1个或2或3个字符的时候再通过javascript加载以该字母打头的所有数据,之后再根据用户输入来筛选显示数据。这样不过也才最多几千条信息,完全搞得定。
wobelisk 2006-08-03
  • 打赏
  • 举报
回复
用Javascript, 根据输入来populate list 的内容。
客户端建立缓存。首先在本地查询,没有才请求服务器。新数据加入缓存。
整个表赋予hash值,用以判断缓存。
shuang8 2006-08-02
  • 打赏
  • 举报
回复
才发现sina的blog搜索有这样的功能,不错~~~
不过C#的组件编程也能响应事件,作出类似效果还是可以的~~~
不过楼主的一次性下载那么大数据,除了客户端有客户端软件来维护之外,应该是别无他法了吧?

******************************
C#代码中心[CCSharp.Net]内测中
做最实用方便的C#专题站
网站由站长用C#全面全新打造
欢迎参观访问留言~~~
******************************
chuqunpeng 2006-08-02
  • 打赏
  • 举报
回复
谢谢 llmice(飞翔蚂蚁) 的意见,我要的跟他给的完全一样。
要好好学习下。
后面来的朋友也去http://search.blog.sina.com.cn/blog/这里看以下吧
w_sabre 2006-08-02
  • 打赏
  • 举报
回复
10000条放在combobox里,别人怎么选啊?得累个好歹的。
如果一定要选择的话,建议用模式窗口
phommy 2006-08-02
  • 打赏
  • 举报
回复
感觉llmice(飞翔蚂蚁) 的方法是楼主需要的~
我想进一步的了解这项技术,请问哪位有资料...
llmice 2006-08-02
  • 打赏
  • 举报
回复
楼主的意思你们没懂,他是把这些数据都下过来,然后自动完成填写.
chengduforest 2006-08-02
  • 打赏
  • 举报
回复
请楼主转告楼主的领导:编写b/s程序要抛弃很多c/s的设计方法。

楼主和楼主的领导估计都是不撞南墙不回头的猛男。
Samen168 2006-08-02
  • 打赏
  • 举报
回复
问题还是在UI设计,这么多数据哪个用户会去看,看完得多久,一天都不用做其他事了
llmice 2006-08-02
  • 打赏
  • 举报
回复
AJAX是唯一的方法给你一个地址
http://search.blog.sina.com.cn/blog/
在这里试一试就知道了,还有GOOGLE也有一个这样的技术,SINA估计是模仿GOOGLE的,
你在GOOGLE的英文站找下就知道了,我这里GOOGLE现在打不开
加载更多回复(70)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧