• 讨论今天这个问题之前,我们先来看下浏览器公布的资源并发数限制个数,如下图

不难看出,目前主流浏览器支持都是最多6个并发

需要注意的是,浏览器的并发请求数目限制是针对同一域名的

意即,同一时间针对同一域名下的请求有一定数量限制。超过限制数目的请求会被阻塞,这就是很多网站专门解决这个问题的原因。

有的请求会持续很长时间,如果把 img, css, js… 都放到http://一个域名下面,其他请求就迟迟无法完成,浏览者看来就是『卡住了』。而把图片放到另一个域名之后,css和图片就可以并发请求了。

浏览器并发请求就简单说到这里,原文地址:https://www.zhihu.com/question/20474326

  • 下面步入正题,在开发中我遇到一个和奇怪的问题,就是我们接入SSO之后,发现并发请求反而更慢,如图

前面是接入sso之后,后面是没接入sso的情况

后来,找sso那边的同事查问题,他给我发了一个地址 https://blog.csdn.net/littlewrong/article/details/48134535

以下为问题的原因

问:为了可以顺序访问Session的状态值,Session是否提供了锁定机制?
答:Session实现了Reader/Writer的锁机制:
当页面对Session具有可写功能(即页面有<%@Page EnableSessionState="True" %>标记),此时直到请求完成该页面的Session持有一个写锁定。
当页面对Session具有只读功能(即页面有<%@Page EnableSessionState="ReadOnly" %>标记),此时知道请求完成该页面的Session持有一个读锁定。
读锁定将阻塞一个写锁定;读锁定不会阻塞读锁定;写锁定将阻塞所有的读写锁定。这就是为什么两个框架中的同一个页面都去写同一个Session时,其中一个要等待另一个(稍快的那个)完成后,才开始写。

“写锁定将阻塞所有的读写锁定”,也就是说页面在EnableSessionState="True"的情况下没返回输出时,一直持着Session写操作,其他页面对Session的读操作必须等待,而asp.net的aspx页面默认是EnableSessionState="True",每个页面从请求开始至返回一直持着Session写操作,需验证页面必须读取Session值判断,这就是为什么需验证的页面请求被阻塞的原因。只要耗时页面(A页面)没有Session的写操作,也就不会阻塞其他页面的请求,于是修改A页面的EnableSessionState="ReadOnly",例如:<%@ Page Language="C#" AutoEventWireup="true"CodeFile="TBS_Monitor_List.aspx.cs"EnableSessionState="ReadOnly" Inherits="TBS_Monitor_List" %> ,问题解决。

也就是说,在无需对session进行写操作的页面,加上EnableSessionState="ReadOnly"属性,就不会造成Request阻塞的情况了。

这个是asp.net的解决方式,后来我又查了下MVC的解决方案,这里是随意找的一篇:https://blog.csdn.net/paolei/article/details/38052129

具体解决方案就是在 controller上打个[SessionState(SessionStateBehavior.ReadOnly)] 的标签,由于我的项目中没有对session进行写操作的地方,所有我在BaseController上打了标签,最终的结果就是问题解决了,亲测有效

转载于:https://www.cnblogs.com/han2017/p/9603501.html

Ajax异步请求阻塞情况的解决办法(asp.net MVC Session锁的问题)相关推荐

  1. php session 异步,Ajax异步请求PHP服务器,如何做到无阻塞响应 原创 学习与分享 PHP自学...

    最近发现了一个ajax异步请求的问题,用$.post.$.get.$.ajax请求PHP服务器时,总是无法异步返回数据. 经多次测试才发现: -- 不同浏览器,请求不同域名-不阻塞:无需实验 -- 不 ...

  2. php 返回字符串给aja,解决ajax异步请求返回的是字符串问题

    1.返回结果差异 js获取后打印res.code无结果.因为返回数据格式不正确. php文件添加header头: header('Content-Type:application/json;'); 或 ...

  3. 解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题、滑动后不能轮播的问题。

    解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题.滑动后不能轮播的问题. 参考文章: (1)解决ajax异步请求数据后swiper不能循环轮播(loop失效)问题.滑动后不能轮播 ...

  4. 解决Ajax异步请求中传数组参数,后台无法接收问题

    解决Ajax异步请求中传数组参数,后台无法接收问题 参考文章: (1)解决Ajax异步请求中传数组参数,后台无法接收问题 (2)https://www.cnblogs.com/wangshuaiand ...

  5. jQuery使用ajax异步请求400解决方法

    jQuery使用ajax异步请求访问状态码400解决方法: 先直接上结论:首先检查下自己使用的请求方式,我原来用的是post方式,更改为ajax之后就解决了,才反应过来应该是版本不兼容的问题! < ...

  6. php原生的异步请求,原生JavaScript实现Ajax异步请求

    ajax现在是一种非常流行的技术,现在虽然可以利用JQuery或者一些第三方插件甚至微软提供的一些控件可以方面的实现ajax功能,但是明白其原理也是非常重要的,下面是来使用纯javascript实现获 ...

  7. html弹窗赋值给查询框,bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...

    /查询单个 function query(id) { $.ajax({ url : "/small/productServlet", async : true, type : &q ...

  8. 关于ajax异步请求后台接受参数为null的问题

    关于ajax异步请求后台接受参数为null的问题 问题描述: 近日楼主在前端页面,使用ajax异步post方式发送请求, 1: 前台访问路径正常,参数携带正常 2: 后台拦截请求成功,使用reques ...

  9. 从浅到深,带你彻底搞懂AJAX异步请求

    在平时开发过程中,异步请求似乎比同步请求出现的频率还要高一些.这是为什么呢?在同步请求时如果对网页的部分内容进行更新时,是不是就必须重载整个页面.这样肯定是不行的,这时就可以采用异步请求来解决此问题. ...

  10. ajax异步请求,以及ajax异步返回的数据的处理方案

    为什么JS会有同步任务和异步任务: js是单线程,会按照顺序执行一个一个的任务,如果遇到某个任务像网络请求一类的需要延长执行回调函数,那么页面就会阻塞,所以引入了异步的概念. 同步任务:同步任务不需要 ...

最新文章

  1. 放射科医生选择AI供应商的10大标准
  2. git遇到的问题之“Please make sure you have the correct access rights and the repository exists.”...
  3. openvc学习笔记(4)——两种方法在没有环境下运行程序
  4. spring cloud构建互联网分布式微服务云平台-Ribbon
  5. aircv 安装_Python 通过截图匹配原图中的位置(opencv)实例
  6. java 反射api_反射是最重要的Java API
  7. C | 构成和编码规范
  8. Canny边缘检测算法原理及其VC实现详解(一)
  9. linux ssh 查看vg,linux SSH证书登录
  10. isFinite使用说明
  11. 云计算介绍、TCP/IP协议及配置
  12. Java Maps的9个常见问题
  13. ubuntu MySQL的卸载
  14. 中国省市区 json
  15. 每日工作问题记录总结(好习惯 打卡2/?)
  16. 计算机教师中级职称个人总结,职称个人总结
  17. python问题 Traceback (most recent call last)
  18. phpcms v9 二次开发 前台上传图片
  19. 手把手教你实现一个人脸认证登录系统
  20. 批量打印电子发票方法,发票连续打印教程分享

热门文章

  1. python open 编码格式_Python以unicode编码格式读入外部文件
  2. Linux的版本可分为,Linux不同分类标准下的各种版本解读
  3. c语言创建若干个成绩栏目,2015年计算机二级《C语言》考试上机测试题(6)
  4. python脚本实现ipv6的ddns功能
  5. shell脚本 把一个文件的内容全部转换为大写
  6. C++ 运算符重载四(自定义数组类)
  7. 事件处理程序的处理顺序问题
  8. 【训练平台】mmdetection训练自己的标注数据, 以faster RCNN ,yolo为例子
  9. windows 下 git bash 打开特定的文件目录与相关操作
  10. spark 数据倾斜调优