代码改变世界

asp.net 跬步篇(4) EnableSessionState设置 引起的框架集加载问题

2010-06-23 15:53  邢少  阅读(...)  评论(...编辑  收藏

 

       前两天对一个已经完成的项目进行代码优化的时候,每次登录后,切换到主页面发现加载的时候有明显的页面先后加载现象,给人感觉系统性能不好。而且主页面加载并没有做什么比较复杂的操作,只有导航栏初始化复杂一点。内容区和标题栏区基本上没有逻辑操作。       

    主页面应用了iframe框架集,印象中它的加载是异步的。那么为什么会出现这样的问题呢?在网络上一阵狂找,遗憾的是资料显示,iframe加载就是异步加载。不会出现请求排队的问题,问题不会出现在应用框架集上。

    为了找到问题所在,我新建立了三个个html页来代替项目主页实际加载的三个区域,结果是加载很快,基本上就是一下子全都出来了。(更加确定不是框架集的问题)然后我用导航栏页面.aspx+标题栏.html+内容区.hyml进行测试,依然很好。难道是我的标题栏和内容区的问题?但是这个页面除了是.aspx后缀和html文件基本没有什么区别,这两个区域在登录后就是显示背景图片和文字信息,没有涉及其它复杂的操作。疑惑中只能将问题暂时放下,下午在和一个新同事说到单例模式的时候,忽然灵光一闪。(灵感啊)页面加载不是框架集问题,那么就是三个.aspx页面请求发生了排队。

    经比对三个页面都涉及同时访问了session对象,session会不会存在锁定机制呢,直接在googel上搜索了一下。http://www.jb51.net/article/9442.htm  看到了我碰到的问题的解决方法。EnableSessionState=”readonly” 可以避免写锁定,aspx页面默认状态下该属性默认为“True“。平时没有用到过 EnableSessionState 属性,所以不是很熟悉,(芝麻虽小亦是食儿啊),在开发中有时候会碰到这样那样的问题,可能原因只是因为对小知识的不了解。

    没有解决不了的,只有不知道怎么解决的。