2013-02-24 101 views
1

我目前正在開發一個小型的Web應用程序項目,我想使用Microsoft MVC4框架進行開發。我很少有網絡開發經驗,所以請耐心等待。MVC Web應用程序基本設計

大多數情況下,它是一個典型的數據,業務邏輯,查看Web應用程序。但是,也有一些操作是CPU密集型的,需要相當長的時間才能返回結果(它們由用戶直接請求參數)。

我曾考慮編寫一個單獨的Web服務,它只負責昂貴的操作,以減少主要Web應用程序的負載,但我不確定這是否正確。另外,如果我確實使用單獨的Web服務,那麼Web應用程序的哪個組件應該與它交談?該視圖通過AJAX調用,控制器..?

我可以有一些關於如何將所有這些放在一起的快速指南?

+1

用戶是否需要等待長時間運行過程的結果? – 2013-02-24 15:51:02

+0

我在考慮如下實現它:用戶提出請求。然後他們定期輪詢服務,直到結果可用。 (我也不確定這是否是一個好策略) – user472875 2013-02-24 16:02:48

回答

0

Web應用程序的哪個組件應該與它通話?

控制器。該視圖只能調用您的控制器操作。然後控制器負責查詢一些服務,建立模型並將該模型傳遞給視圖。

+0

好吧,然後我有以下情況:我實現長請求的方式是通過一張票。 I.e .:我提出請求,獲得一張票#然後每隔幾分鐘就會對該服務進行一次輪詢,直到我得到結果爲止。 因爲這一切都是在沒有刷新頁面的情況下發生的,我將不得不在控制器中創建路由調用,其中一個只發出請求,另一個輪詢Web服務,這看起來非常冗餘。 有沒有更好的方法? – user472875 2013-02-25 15:22:43

0

您可以通過AJAX加載所有數據。非常簡單。

首先創建將JSON返回到View的控制器。

[HttpPost] 
    public ActionResult GetData() 
    { 
     var data= "your data from db or web service" 
     return Json(data); 
    } 

第二次使用AJAX獲取數據。

function GetData(cityID) { 
    $.ajax({ 
     url: '/Controler/GetData', 
     type: 'POST', 
     dataType: 'json', 
     success: function (results) { 
      //your data is in results varible 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
     } 
    }); 
} 

這是非常快的,因爲所有的方法都會調用異步。

+0

換句話說,使用控制器路由所有呼叫?這是正確完成它的最有效的方法嗎? – user472875 2013-02-24 17:51:22