2013-08-04 31 views
0

我正在致力於簡單的酒店預訂系統,用戶輸入他們的信息,如酒店或房間。在每個頁面中我都有一個腳註欄,當用戶做某事時顯示系統反饋。例如當用戶添加酒店時,在這樣做之後,當他重定向到任何頁面時,立即在頁腳欄中顯示「酒店已成功添加」。如何在網頁中顯示數據庫更改(whiteout重新加載頁面)?

|----------------------------------------| 
|          | 
|    GridView     | 
|          | 
|          | 
|----------------------------------------| 
|hotel added successfully !    | 
|----------------------------------------| 

,我使用的解決辦法是: 當用戶登錄的東西,我登錄它 和我定義的div [ID =通知]在共享/ _layout,以及使用一個工人來調用檢查日誌的功能數據庫並獲得新的。

// i use worker to repeatedly invoke function to check db 
    var worker = new Worker('../Scripts/worker.js'); 
    worker.addEventListener('message', function (e) 
    { 
     if (e.data != "") 
     { 
     var result = e.data; 
     var results = result.split("##");     
     if ($("#notificationID").val() != results[1]) 
     {      
      $("#notificationID").val(results[1]);  
     }    
     } 
    }, false); 

和功能檢查db是

public string GetNewTrans() 
{    
    string userName = Membership.GetUser().UserName; 
    using (var context = new jobEntities()) 
    { 
    var query = from p in context.Logs where p.UserName==userName && p.IsNew == null orderby p.ID_Log descending select p; 
     if (query.Count() > 0) 
     { 
      var log = query.FirstOrDefault();       
      DateTime c= DateTime.Parse(log.RefreshDate.ToString()); 
      var sec = DateTime.Now.Subtract(c).Seconds; 
      if(sec> 2) 
      { 
      log.IsNew = "false"; 
      context.SaveChanges(); 
      } 
      var result = log.Section + " : " + log.Action +"@@"+log.Success.ToString()+"##"+log.ID_Log.ToString(); 
         return result; 
     } 
     return null; 
     }      
} 

現在我想,當用戶數量增加,檢查DB增加而引起的負荷,使網頁速度較慢。 那麼你有什麼更好的解決方案? 和我的框架在asp mvc 3.5和使用EF 4.1

回答

0

更好的解決方案從數據庫獲取一些數據,它使用JsonResult操作控制器來獲取json數據並在客戶端進行修改。

至於信息的郵件,你可以在你的控制器和重定向查看

+0

JsonResult是好主意,添加的TempData [「消息」]對象,我忘掉它,thanks.but因爲我不想使用重新加載頁面,然後使用重定向,是不可能的 –

相關問題