一个页面多个ajax请求
时间: 2023-12-27 17:39:28 浏览: 95
回答: 当一个页面上同时开启多个ajax请求向后台请求数据时,如果没有特殊处理,这些请求会被堵塞,变成一个接一个地完成。这是因为这些请求属于同一个会话,而同一个会话中的请求会受到Session锁的影响,导致请求阻塞。\[1\]为了避免这种情况,可以在控制器上加上特性\[SessionState(System.Web.SessionState.SessionStateBehavior.ReadOnly)\],这样可以将Session设置为只读,避免同一会话中的Session锁导致请求阻塞。\[2\]另外,需要注意的是,HttpSessionState来自于HttpModule的SessionStateModule,在每次请求处理过程中,会检查当前请求的处理程序是否实现了接口IRequiresSessionState,如果实现的话,会为这个请求分配HttpSessionState。同时,SessionStateModule还负责SessionID的生成、Cookieless会话管理、从外部状态提供程序中检索会话数据以及将数据绑定到请求的调用上下文。如果页面请求设置了读取器锁定,同一会话中同时处理的其他请求将无法更新会话状态,但至少可以进行读取。如果页面请求设置了写入锁定,那么所有其他页面都会被阻止,无论他们是要读取还是写入内容。在AJAX程序设计中,需要注意这种情况的发生。\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [同一页面多个ajax请求后台堵塞问题](https://blog.csdn.net/leftfist/article/details/82805674)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文