1
我正在使用ASP.NET(而不是MVC)和.NET v4(不是v4.5)編寫Web應用程序。ASP.NET中的後臺任務
我從第三方Web服務獲取一些必須顯示的數據,其中一個方法需要很長時間(幾秒)才能完成。要獲取/預取的信息取決於用戶的初始請求(因爲不同的用戶請求有關不同對象的詳細信息)。
在單用戶桌面應用程序,我可能:
- 儘可能快地顯示我的UI
- 具有非UI後臺任務提前獲取信息
- 因此希望有數據已經牽強/緩存的版本,由當時的用戶向下鑽取到UI要求它
要使用ASP.NET做類似的事情,我猜我可以:
- 使用一個BackgroundWorker,傳遞會話實例作爲參數傳遞給工人
- 在工作人員的任務完成後,如果用戶的數據請求到達時獲取的數據寫入會話
- 面前的任務是完成,然後阻止,直到它完成
您是否預見到問題,您能否提出改進建議?
[有StackOverflow上關於ASP.NET和後臺任務等問題,但這些似乎都對獲取和更新全球應用的數據,而不是特定的會話的數據。]
我目前正在使用一個簡單的JavaScript和會/可以使用jQuery。如果我正在使用ajax,如果用戶在請求完成之前試圖導航/向下鑽取,會發生嗎?例如,頂層頁面應立即說:「您選擇了對象'ABC';您可以查看其'Foo','Bar'和'Baz'組件的詳細信息。」並有一些數據(來自更快的來源)供用戶查看。只要我知道他們對ABC感興趣,我也想開始提取較慢的數據,以便在他們點擊任何Foo/Bar/Baz組件時可用。 – ChrisW
我目前使用類似REST的URL,例如'http:example.com/Report.aspx?id = ABC'和'http:example.com/Report.aspx?id = ABC&sub = Foo' – ChrisW
使用jQuery it很容易使用這些事件並改變用戶可以做什麼和不可以做什麼。我認爲向他展示一條消息/動畫gif以通知他正在進行是合理的。這不適合你嗎? –