|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
你可以先看看这篇文章(软微学院生涯-三朝元老经验谈),打不开再跟我说。(我的意思是想让她自己先稍微了解一下到底现在各个方向学的工具以及以后要做的工具大概是什么,因为喜欢做什么样的事其实自己最清楚的)征象:在一个网站中,当会见一个处置对照耗时的页面(A页面),页面哀求还没有前往时,此时再点击会见该网站的其他页面(B页面)会呈现B页面好久都没有呼应和前往,直到A页面输入前往数据时才入手下手处置B页面的哀求,形成哀求列队处置,A页面堵塞了B页面的哀求处置。
入手下手我一向嫌疑是否是扫瞄器单线程的原因,在网上搜刮了材料,IE6/7,FF都是多线程扫瞄器(IE6仿佛是2个线程),用IE6、IE7、FF都试过了,了局一样,这就奇异了,明显都是多线程,怎样会堵塞呢?
在网上搜刮了好几回相干的成绩,仍是没查出个以是然,但网站酿成的客户体验的确很差,每当会见到谁人耗时的A页面时,再想会见其他页面基本检察不了。“怎样体系那末慢”,晕,没举措,我也不懂怎样处置(不卖力任的立场啊,呵呵)。
在一次的偶然中我发明居然在A页面Loading(页面上加的提醒)的时分,能够会见某个页面,真是欣喜,再尝尝几回,能够,的确能够,是否是页面代码堵塞了?因而查这两个页面的代码,实在这两个页面的代码就十几行,没甚么成绩呢。
经由屡次实验和比对,才发明这两个页都是无需上岸考证的页面,之前呈现堵塞的页面都是需上岸考证后才可会见的页面,而体系的考证信息是存储在Session中,经由过程Session判别考证的。这时候想到应当是Session的成绩,但仍是不知怎样处置,再往网上搜刮,互联网上的信息真是包罗万象,终究搜刮到成绩地点:
/************************************************************/
问:为了能够按次会见Session的形态值,Session是不是供应了锁定机制?
答:Session完成了Reader/Writer的锁机制:
当页面临Session具有可写功效(即页面有<%@PageEnableSessionState="True"%>标志),此时直到哀求完成该页面的Session持有一个写锁定。
当页面临Session具有只读功效(即页面有<%@PageEnableSessionState="ReadOnly"%>标志),此时晓得哀求完成该页面的Session持有一个读锁定。
读锁定将堵塞一个写锁定;读锁定不会堵塞读锁定;写锁定将堵塞一切的读写锁定。这就是为何两个框架中的统一个页面都往写统一个Session时,个中一个要守候另外一个(稍快的谁人)完成后,才入手下手写。
/************************************************************/
“写锁定将堵塞一切的读写锁定”,也就是说页面在EnableSessionState="True"的情形下没前往输入时,一向持着Session写操纵,其他页面临Session的读操纵必需守候,而asp.net的aspx页面默许是EnableSessionState="True",每一个页面从哀求入手下手至前往一向持着Session写操纵,需考证页面必需读取Session值判别,这就是为何需考证的页面哀求被堵塞的缘故原由。只需耗时页面(A页面)没有Session的写操纵,也就不会堵塞其他页面的哀求,因而修正A页面的EnableSessionState="ReadOnly",比方:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="TBS_Monitor_List.aspx.cs"EnableSessionState="ReadOnly"Inherits="TBS_Monitor_List"%>:<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="TBS_Monitor_List.aspx.cs"EnableSessionState="ReadOnly"Inherits="TBS_Monitor_List"%>,成绩办理。2003年中微软发布最新版本的ASP.netWebMatrix,对于我们喜欢用Asp.net来编程的朋友实在是个好消息,我也实实在在的将Asp.net更深入的研究了一下,以方便我以后更好的运用它,同时我也讲讲使用它的感受。 |
|