如何在网页中显示数据库更改(白化重装页面)?

时间:2013-08-04 11:46:33

标签: ajax asp.net-mvc

我正在开发简单的酒店预订系统,用户输入他们的信息,如酒店或房间。在每个页面中我都有页脚栏,当用户做某事时显示系统的反馈。例如,当用户添加酒店时,在执行此操作后,当他重定向到任何页面时,在页脚栏中,立即显示,"酒店成功添加"。

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

我使用的解决方案是: 当用户登录时,我会记录它 我在shared / _layout中定义div [id = notification],并使用worker来调用检查日志数据库并获取新数据库的函数。

// 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;
      }                      
 }

现在我认为当用户数量增加时,check db的负载会增加并导致页面变慢。 所以你有更好的解决方案吗? 和我在asp mvc 3.5中的框架并使用EF 4.1

1 个答案:

答案 0 :(得分:0)

使用JsonResult操作控制器从db获取一些数据以获取json数据而不是在客户端上修改数据的更好解决方案。

对于信息消息,您可以在控制器中添加TempData [“message”]对象并重定向视图