为公司开发了一套网上仓库管理系统,其功能还是比较简单,主要负责记录单据,提交单据结算等等功能。现在系统已经开发完毕,但在推广使用的时候却发现问题,就是访问站点的速度比较慢,打开页面时会有3秒左右延迟,有的按钮事件会出现5秒左右的延迟,由于站点套用了 ajax,所以我首先怀疑是否是ajax在客户端生成了较多的javascript代码导致页面打开时的延迟,后来经过httpwatch测试站点下载量发现套用 ajax 的页面下载反而会小一些。所以请教各位高人为何会出现这样的问题,考虑到影响页面访问效率和事件执行效率的因素较多,小菜本人为各位高手提供尽量多的系统信息:
1.站点套用ajax,套用方式updatepanel
2.站点有用户验证,验证方式结合session和cookie
3.由于和单据离不开关系基本每个页面上都有datalist 或gridview
4.框架设计中由于是自己独立开发基本没有应用接口,而是大量的使用重载和继承
5.页面元素风格尽量靠css 实现,但也有少量图片
6.javascript外联代码用来控制新窗口的打开、页面少量的动态效果以及操作记时器
7.使用javascript连接了webservices,靠webservices.htc实现
8.基本所有gridview和datalist都包含了控件,作用有:编辑,添加,提交,删除等基本数据操作
9.每个gridview都有排序、分页,分页依靠dataset 实现
10.pageload时,有些页面被动态的添加数据库信息,如3连动dropdownlist
11.数据库操作全部依靠存储过程,每个数据库操作都有对应的存储过程
12.有些页面上使用了静态的对象如静态的datatable,或者静态的结构体数组
以上,由于本人是应届生没有站点设计经验,请各位高人指点

解决方案 »

  1.   

    按你描述的应该不会太慢
    找出哪个部分负载过大,数据库、IIS、网络等,再逐个解决
      

  2.   


    也就是说其实完全和gridview已经aspx 本身的执行效率无关?
      

  3.   


    数据库是sql2005 
    iis5.0
    网络上行512kb
      

  4.   

    基本可以确定是网络问题你丛本地测试速度如果正常的话,那就可以确定是网络问题了。httpwatch 可以检测每一步的开始和结束时间,就是说可以检测每一步的用时
    你可以分析下图片打开的时间是否也是一个数量级的。就是说图片的打开是否也是需要好几秒
      

  5.   

    本地测试时候是没有问题卡多集中在与 gridview有关的地方~~比如点击gridview控件里面的编辑按钮时外网有时会卡5~8秒,内网大概有1秒左右,会不会是数据集太大了?
      

  6.   

    gridview分页是怎么分的? 可能会跟这个有关,最好把分页用存储过程来实现。
    最好用SQL Server Profiler看一下,是否存在读取数据库不合理或数据量冗余过大的问题。
      

  7.   

    依靠dataset,所有数据写入dataset 中再靠dataset分页。而且也有静态的datatable和dataset,有可能是这个问题我代码测试下
    多谢高人。有效果必定给分
      

  8.   

    gridview 用于做行业软件还行  局网用
    外网参加那就不行了
      

  9.   

    我的感觉,有些地方用了AJAX会明显变慢!!
      

  10.   


    也就是说有gridview的页面会在页面交互时候生成更多的代码?如果是这样我选择datagrid会不会好一些呢?
      

  11.   

    dataset一次性全部读出记录,然后进行自动分页,当数据有变化,全部重新读?
    如果是这样的,效率肯定不好,改为:在数据库中进行分页,一次只读取当前页数据。
      

  12.   

    js 会导至页面变慢。并不是数据流量的问题。而是js本身运行时,要消耗大量的cup资源。所以,看一下,是不是用了过量的js运算。二,看一下你的数据库数据量是否过大,我的意思是,一次性加载是否过大。可以做这样一个测试,你把你的数据显示都关掉,之后,就是一个页面,运行一下,看一下时间。再一个一个的数据源加上去,再运行就可以了。现在你的首要问题,不是猜测,是去排除。找到具体的因素,就好了。网络慢,大体原因有几点,一,大量的css样式,引用了大量的图片。二,js脚本的运行增加了cpu的负荷。三数据访问量过大。网络限制。一样都是新学,只是随便说点个人经验,具体原因还需要自己的慢慢摸索。祝你早日找到答案。答错勿笑。
      

  13.   


    着几天摸索下来,发现问题就是出现在数据集上面,所有和gridview有关的操作都会出现大概3~5秒的延迟,正在尝试修改中
    css样式文件过大,我也是才注意到~~
      

  14.   

    你可以参考
    http://www.cnblogs.com/mail-ricklee/archive/2008/11/17/1311847.html
    中的框架
    和里面提供的优化js,缓存的代码