我正在开发简单的酒店预订系统,用户可以输入他们的信息,比如酒店或房间。在每一页我都有页脚栏,当用户做某事时显示系统的反馈。例如,当用户添加酒店时,执行此操作后,当他重定向到任何页面时,在页脚栏中,立即显示“酒店添加成功”。
|----------------------------------------|
| |
| GridView |
| |
| |
|----------------------------------------|
|hotel added successfully ! |
|----------------------------------------|
我正在使用的解决方案是:当用户记录某些内容时,我记录它并在 shared/_layout 中定义 div[id=notification],并使用工作人员调用检查日志数据库并获取新数据库的函数。
// 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);
检查数据库的功能是
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;
}
}
现在我认为当用户数量增加时,检查数据库的负载增加并导致页面变慢。那么你有更好的解决方案吗?和我在 asp mvc 3.5 中的框架并使用 EF 4.1