[英]MVC optimization for Session.Clear(), Session.Abandon(), Session.RemoveAll()?
我正在使用一些應該在用戶完成后終止的會話。 我偶然發現了這三場殺手。 何時是使用這些的最佳時間,因為我使用會話的時間比不是。 另外,還有其他會話終止我不知道嗎?
Session.Clear
和Session.RemoveAll
是相同的; 后者只是稱前者。 他們會立即刪除會話中存儲的所有項目,但會話本身仍然存在。 Session_OnEnd不會觸發。
Session.Abandon
實際上並不立即清除這些值,它只是標記在當前請求結束時放棄的會話。 您可以繼續讀取請求其余部分的值。 如果您稍后在請求中寫入會話,則會在請求結束時悄悄地丟棄新值,而不會發出警告。 Session_OnEnd在請求結束時觸發,而不是在調用Abandon時觸發。
Session.Clear
不會Session.Clear
會話,它會清除所有值。 Session.Abandon
實際上殺死了Session。
看起來這里解決了大部分內容: 在ASP.NET中,何時應該使用Session.Clear()而不是Session.Abandon()?
在這里稍晚但是想分享@stevemegson正確的證據,因為Session.RemoveAll
內部調用Session.Clear
public void Clear()
{
this._container.Clear();
}
public void RemoveAll()
{
this.Clear();
}
所以完全沒有區別
而session.Abandon
調用
public void Abandon()
{
this._container.Abandon();
}
哪個基本上:)
public void Abandon()
{
this._abandon = true;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.