IRequiresSessionState和IReadOnlySessionState應用上的一些差異
在呼叫ashx
時,如果需要應用Session
,則必須繼承介面IRequiresSessionState
,IReadOnlySessionState
,但根據字面,可以知道IRequiresSessionState
可對Session
進行所有操作,IReadOnlySessionState
只能對Session
進行只讀操作
假設場景:有頁面Test.aspx
以及一般處理程式Requires.ashx
和ReadOnly.ashx
(Requires.ashx
繼承IRequiresSessionState
,ReadOnly.ashx
繼承IReadOnlySessionState
,兩者的ProcessRequest
方法內都只有一段程式碼System.Threading.Thread.Sleep(1000))
,Test.aspx
分別有一段js
通過ajax
非同步的方式呼叫Requires.ashx
和ReadOnly.ashx
活動場景1:對Requires.ashx
同時進行2次ajax
非同步訪問,通過FireBug
監測時間,可以發現第一個Requires.ashx
的執行時間為1秒,第二個Requires.ashx
的執行時間為2秒,第二個Requires.ashx
的處理時間比第一個多1倍
活動場景2:對ReadOnly.ashx
同時進行2次ajax
非同步訪問,通過FireBug
監測時間,可以發現第一個ReadOnly.ashx
的執行時間為1秒,第二個ReadOnly.ashx
的執行時間為1秒,兩者處理時間相同
可以得出結論,在繼承IRequiresSessionState
時,為保證Session
的正確性,asp.net
內部機制會保證同一次會話期間,在第一個ashx
執行完畢前,不會執行第二個ashx
;而繼承IReadOnlySessionState
時,因為Session
是隻讀不變的,所以asp.net不需要對Session
的正確性進行控制,無論多少個請求,只要IIS
能處理,就會同時處理多少個請求
相關文章
- UDP和TCP的差異UDPTCP
- rpm 與 原始碼安裝的一些差異原始碼
- 線上json差異比較工具--遞迴比較兩個json的節點和值的差異,並支援差異數預覽和逐個檢視差異JSON遞迴
- Akka 和 Storm 的設計差異ORM
- Oracle中exists和in的效能差異Oracle
- 聊聊t-io和netty的差異Netty
- Bootstrap和Tailwind CSS之間的差異?bootAICSS
- mysql 的myisam和innodb對應的cache管理方式的一點差異MySql
- 譯:原生iOS應用程式和原生Android應用程式設計之間的差異iOSAndroid程式設計
- mac和windows執行maven命令的差異MacWindowsMaven
- 談談 mysql和oracle的使用感受 -- 差異MySqlOracle
- 工作流和BPM之間的差異
- MariaDB 和 GreatSQL 效能差異背後的真相SQL
- Linux和Windows的差異?0基礎需知!LinuxWindows
- [譯]React函式元件和類元件的差異React函式元件
- spring下應用@Resource, @Autowired 和 @Inject註解進行依賴注入的差異Spring依賴注入
- 模電和數電在應用上的區別和聯絡
- Spark和Hadoop之間的主要技術差異和選擇SparkHadoop
- IaC 管理新思路:Walrus 和 Terraform 的差異化探索ORM
- 詳解爬蟲與RPA的工作原理和差異爬蟲
- 想不到WhaleStudio和Talend的差異竟如此之大!
- python:dis包中dis()和Bytecode()函式的差異Python函式
- Linux系統中Ubuntu和Redhat的差異有哪些?LinuxUbuntuRedhat
- Standard ABAP Debugger 和 Classic ABAP Debugger 的實現差異
- MySQL中myisam和innodb有什麼差異?MySql
- SAP BSP應用有狀態和無狀態行為差異比較
- PostgreSQL與Oracle的sql差異SQLOracle
- 【譯】框架與庫的差異框架
- 企微SCRM和CRM系統的差異有哪些呢
- 【底層】 C++和C#的編譯方式差異 / AOT和JITC++C#編譯
- 瀏覽器極速模式和相容模式差異瀏覽器模式
- BeanPostProcessor 介面和@PostConstruct 在使用姿勢上差異BeanStruct
- list對比差異
- 【行業知識】服裝供應鏈的差異化戰略行業
- 示例解讀 Python 2 和 Python 3 之間的主要差異Python
- MySQL和PostgreSQL在多表連線演算法上的差異MySql演算法
- SAP 電商雲 Accelerator 和 Spartacus UI 的工作機制差異UI
- 如何打造差異化和個性化的夜遊專案