2、触发 Ajax 时尽量减少请求次数,做一个服务器是否响应的判断
$(function () {
run(); //加载页面时启动
var interval; //设置定时器
function run() { //设置参数
interval = setInterval(chat, "60000");
}
function chat() { //执行函数
//1、获取当前时间
var date = new Date()
var Y = FullYear()
var M = Month() + 1
var D = Date()
var h = Hours();
var m = Minutes();
var s = Seconds();
time = Y + "/" + (M < 10 ? "0" + M : M) + "/" + (D < 10 ? "0" + D : D) + " " + (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m);
//alert(time);
//2、判断是否响应
var judge = true;
if (judge)
{
judge = false;
$.ajax({
url: "/Schedule/Remind",
data: { time: time },
success: function (data) {
judge = true;
if (data == "0") {
//alert("没有请求到数据!");接下来的操作~
}
else {
var obj = JSON.parse(data);
//$("#number").val(obj[0].Number);
//alert("请求到数据!");接下来的操作~
$(".remind img").attr("src", "localhost/Image/Index/reminders.png");
$(".remind img").bind({
mousemove: function () {
$(this).css("cursor", "pointer");
$(this).attr("src", "localhost/Image/Index/remingers.hover.png");
},
mouseout: function () {
$(this).attr("src", "localhost/Image/Index/reminders.png");
},
click: function () {
location.href = "/Employee/EmployeeInfo";
}
})
}
}
})
}
}
function end() { //关闭
clearTimeout(interval);
}
function start() { //重新启动
end();
interval = setInterval(chat, "60000");
}
})
控制器:
1、根据是否获取到数据,分别处理
2、list 转换为 string 的方法是很常用的
/// <summary>
/// 日程提醒
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public string Remind(DateTime? time)
{
var emodel = (Employee)Session["session-employee"];
var number = emodel.Number;
var list = new BLL.ScheduleLogic().Get(number, time);
if (list == null || list.Count() < 1)
{
return "0";
}
else
{
var json = JsonConvert.SerializeObject(list);
return json;
}
}
逻辑层:
1、获取该员工当天所有的日程数据
2、根据时间进行判断,获取在提醒时间范围之内的信息
/// <summary>
/// 日程提醒
/// </summary>
/// <param name="number"></param>
/// <param name="time"></param>
/// <returns></returns>
public List<RemindScheduleModel> Get(string number, DateTime? time)
{
int yyyy = Convert.ToInt32(time.Value.ToString("yyyy"));
int mm = Convert.ToInt32(time.Value.ToString("MM"));
int dd = Convert.ToInt32(time.Value.ToString("dd"));
var list = new ScheduleRepository(IUnitOfWork).GetModelList(s=>s.Employees.Where(e=>e.Number==number).Count()>0 && s.Time.Value.Year == yyyy && s.Time.Value.Month == mm && s.Time.Value.Day == dd && s.IsEff == "1").ToList();
List<RemindScheduleModel> slist = new List<RemindScheduleModel>();
foreach (var item in list)
{
TimeSpan t = new TimeSpan(item.Time.Value.Ticks) - new TimeSpan(time.Value.Ticks);
if(t.TotalMinutes<=30 && t.TotalMinutes>=-30)
{
RemindScheduleModel model = new RemindScheduleModel();
model.Id = item.Id;
model.Time = item.Time;
model.Title = item.Title;
slist.Add(model);
}
}
return slist;
}
本文发布于:2024-02-01 18:48:40,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170678451938712.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |