博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 页面ajax访问被阻塞
阅读量:4693 次
发布时间:2019-06-09

本文共 1104 字,大约阅读时间需要 3 分钟。

好久没来记博客了,再接再厉

今天做ajax一个页面处理信息大概需要20-30秒

一个页面是查这个信息处理的进度,查看百分百用session计算

 

问题:ajax是等到第一个结果调用后才去调用第二个的。

第一个请求默认为五秒!而第二个却只有0.01秒!!

但是却非要等 到第一个调用完成后,才去调用第二个!!

解决方法:

检查是否使用了session

问:为了可以顺序访问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" %> ,问题解决

转载于:https://www.cnblogs.com/bulege/archive/2013/04/02/2995726.html

你可能感兴趣的文章
codewars--js--Convert all the cases!
查看>>
codeforce440C-Maximum splitting-规律题
查看>>
牛客小白月赛8 - E - 诡异数字 数位DP
查看>>
@Autowired还可以注入List和Map
查看>>
004 使用文本编辑器
查看>>
RAID5当一块硬盘离线后处理
查看>>
我的系统备份策略
查看>>
DynamicMBean(Java SE 6 新特性: JMX 与系统管理)
查看>>
杜月笙语录
查看>>
【机友会选手机攻略】合约机是什么?和裸机有什么区别?0元购机和购机入网送话费区别?...
查看>>
Nginx配置一个自签名的SSL证书
查看>>
转:文本分类问题
查看>>
tensorflow_python中文手册
查看>>
Vs2012在Linux应用程序开发(3):加入新平台hi3516
查看>>
memcached 分布式聚类算法
查看>>
beautifulsoup之CSS选择器
查看>>
wing ide破解
查看>>
[bzoj1430] 小猴打架
查看>>
【原】多线程编程中临界区与互斥锁的区别
查看>>
软件集成、确认和系统测试方法
查看>>