我有一個有趣的問題,我需要解決,我不知道哪裏可以開始。我正在編寫一個MVC Web應用程序,通過表單獲取記錄列表,併爲每個應用程序創建一個ajax調用。 ajax調用的控制器使用的資源一次只能處理一個請求。簡單的解決方案是將ajax調用更改爲同步,但是,這會掛起瀏覽器並導致糟糕的體驗。隊列請求MVC控制器
此外,多個用戶可能會同時使用此應用程序,因此客戶端的排隊不起作用。
任何人有任何建議嗎?
邁克
我有一個有趣的問題,我需要解決,我不知道哪裏可以開始。我正在編寫一個MVC Web應用程序,通過表單獲取記錄列表,併爲每個應用程序創建一個ajax調用。 ajax調用的控制器使用的資源一次只能處理一個請求。簡單的解決方案是將ajax調用更改爲同步,但是,這會掛起瀏覽器並導致糟糕的體驗。隊列請求MVC控制器
此外,多個用戶可能會同時使用此應用程序,因此客戶端的排隊不起作用。
任何人有任何建議嗎?
邁克
好第一關,我的要求是不太一樣的你。我的問題是我的後端數據庫往往有點慢,用戶的響應速度非常重要。
因此,我不得不從等式中刪除數據庫交互。
我的解決方案有兩個主要部分:
保持數據的服務器端緩存
創建一個單獨的進程中包含的所有數據庫的工作,可以與服務器
單獨的進程是作爲由Windows服務託管的命名管道WCF服務實現的。
的基本過程的概述是:
服務本身是這樣的:
回到用戶的土地,有一個JavaScript的setInterval環運行:
最終的結果是,儘管緩慢的後端服務器持續一個非常敏感的用戶界面。
如果您希望實現代碼的任何特定部分讓我知道。
謝謝!這絕對有幫助。我想我聽到的是,這不會是我應該在我的Web應用程序中做的事情。我需要有一個外部服務來排隊和執行。 – mcottingham
您是否考慮將控制器更改爲異步? –
我沒有。這是我的理解,一個異步控制器不會幫助我。這不是這種情況嗎? – mcottingham
我想這取決於這裏定義的資源:'使用一次只能處理一個請求的資源'。你能否更多地瞭解爲什麼一次只能處理一個,或者它是什麼類型的資源? –