2017-04-07 64 views
0

我有類似這樣的方法:Asp.NET返回的ActionResult,同時將數據添加到用戶會話

public ActionResult Index() 
{  
    Session["test"] = GetData(); 
    return View(); 
} 

因爲我GetData()方法花費的時間太長,我想知道如果我可以做一些異步在爲了返回ViewGetData()正在運行並將該對象添加到用戶會話。 我已經想過將這個方法分解成2個方法,第一個返回'View()',第二個方法用ajax調用,僅僅用於添加對象到會話,但我想用這個作爲最後的手段。

在此先感謝!

+2

爲什麼你可以使用AJAX在客戶端異步加載dat?爲什麼是你最後的手段? –

+2

對長時間運行的任務使用異步方法將釋放服務器上的線程,但不會提高對用戶的響應速度。我同意AJAX似乎要走 - 但當然這取決於是否存在不立即將此對象添加到會話的任何影響 –

回答

0

因爲我的getData()方法花費的時間太長,我想知道如果我能在 爲了回報視圖做一些異步同時的GetData()是 運行並添加對象的用戶會話。

您絕對不想在上初始頁面加載運行長時間運行的查詢。用戶可能認爲網絡連接丟失,並一直按F5刷新頁面。

相反,則需要兩個動作方法 -

  1. 1操作方法返回常規視圖。然後在客戶端,你讓Ajax請求操作方法2

  2. 第二操作方法返回JSON響應

FYI:你要確保第二招方法需要用戶登錄訪問。否則,您可能會遇到DDoS攻擊。

相關問題