提升基于Windows SharePoint Service对象库开发的asp.net应用程序效率手记. 软件之美,美在缺陷

        日,收到同事的邮件说一个基于Windows SharePoint Service Object Library开发的asp.net页面极慢,目测的页面展现时间为45秒以上,客户自然不满意。正好我当天有些时间,就与同事一起研究了一下。经过近3小时间的逐步检查,发现了问题,检查过程描述如下:
        1.asp.net优化;在web.config中关闭debug调试模式,效果没有明显改善。
        2.检查页面;在浏览器使用查看->源代码检查效率低下的页面的HTML,另存为txt文件后发现文件大于100多KB,怀疑是页面过大引起。因此检查页面代码,在vs.net 2003打开这个项目,定位到效率低下的页面,打开来看到页面上放置了若干个用户控件,由这些控件直接输出html代码。页面中的表格层层嵌套,怀疑就是表格嵌套引起的。我们知道,只有一个表格全部下载到客户端时,浏览器才会显示这个表格。但同事说实际的工作环境中某一个SPS列表(SPList)数量可能有几十万条,因此我先测试了取列表代码的效率,使用TimeSpan类得到执行时间,只花费不到1秒的时间,因此确定不是列表库的问题。但是近1秒的访问时间还可以优化,于是去WSS站点中为这个列表(SPList)建立一个视图(SPView),按日期排序只取10条记录。再次测试只需600多毫秒,接受。
        3.建立一个测试页面,包含效率低的那个页面中的所有控件--去掉表格,发现只需2-3秒页面即可展现。

        建议同事使用iframe 并将那个页面分拆为多个页面。

       总结:由于大页面和表格嵌套引起的页面执行效率低下,并对Windows SharePoint Service 对象模型了解不够的原因。

原文地址:https://www.cnblogs.com/Johnson/p/364846.html