2014-03-29 25 views
0

我知道我不能重新計算從其他服務器端viewmodel屬性計算出來的服務器端viewmodel屬性,而無需重新加載顯示計算屬性的頁面。重新計算剃刀計算視圖模型屬性,無需重新加載頁面

那麼最簡單但最有效的方法是什麼?

1)收件這是所謂的頁面重載/負載,不產生在服務器端的ViewModels的計算性能有一定的jQuery的更新功能?那是一個解決辦法...

2)如果我將介紹knockoutJS那麼恕我直言剃刀MVC是沒有意義的......我不希望服務器和客戶端的ViewModels。這是一個爛攤子...

所以是結論,如果我有很多客戶端實時更新的屬性,並不想用剃刀做出瀏覽器請求,那麼我寧願選擇ASP.NET Web API並去進入方向SPA?

回答

0

所以是結論,如果我有 性能的許多客戶端實時更新,不想做剃刀瀏覽器請求,那麼我應該 寧願選擇的ASP.NET Web API,並進入方向溫泉?

這取決於是誰執行更新。如果它是最終用戶,並且您正在尋找最大的交互性,那麼是的,SPA就是要走的路。在這種情況下,我同意你的觀點,即服務器端和客戶端視圖模型是多餘的。

如果另一方面更新發生在服務器上,並且您希望儘快通知客戶端,那麼您可以看看爲您提供推送通知的HTML 5 WebSockets和SignalR

+0

好,因爲那時整個數據庫被取出並創造+性能計算等服務器端的ViewModels更新會發生,如果與ListViewModel中的index.html將被重新加載...但是當你有一個jQuery在索引創建對話框.html你不會重新加載Index.html。因此,解決方案似乎將創建/編輯視圖放在對話框中而不是Index.html中,而不是創建/更新,然後重定向到Index.html。但那不是一個好的用戶體驗......試想輸入1000名員工的基礎數據意味着1000次重定向到Index.html視圖:P – HelloWorld

+0

在我使用WebSockets + SignalR來消除mvc /剃鬚刀的缺陷之前,我真的很想看看進入SPA。但我必須把一個很酷的mvc樣本放在一起:/雖然mvc不是那麼酷...... ;-) – HelloWorld