ASP.NET多客户端请求时page_init触发次数及pagehits值计算问题
ASP.NET页面请求计数问题解答
- 核心结论:
Page_Init会为每个客户端请求触发一次,和Page_Load的触发次数一致。考试场景下默认考察全局共享的静态变量,因此20个请求后pagehits最终值为40。 - 细节说明:
- ASP.NET中,每个客户端HTTP请求都会创建全新的Page类实例,页面生命周期的所有阶段(包括
Page_Init和Page_Load)都会针对该请求完整执行一遍,不存在某个事件仅全局触发一次的情况。 - 若
pagehits是页面类的静态变量(全局共享),所有请求共用该变量:每个请求里Page_Init将其自增1,Page_Load再自增1,20个请求累计自增40次,最终值为40。 - 若
pagehits是页面实例变量,每个请求的实例会从0开始自增,单次请求结束时pagehits为2,但该变量会随实例销毁而消失,无法跨请求累计,也就不存在跨请求的“最终值”。
- ASP.NET中,每个客户端HTTP请求都会创建全新的Page类实例,页面生命周期的所有阶段(包括
内容的提问来源于stack exchange,提问作者atieh mokhtary
相关产品推荐
相关产品推荐

