小牛之路——提醒功能
2016-06-21 09:30
435 查看
直接上代码~
PS:作为职场新人,欢迎大牛批评指正,小弟不胜感激!
视图层:
1、设置定时器,根据自己的业务需求设置定时器时间和当前时间的格式
2、触发 Ajax 时尽量减少请求次数,做一个服务器是否响应的判断
$(function () {
run(); //加载页面时启动
var interval; //设置定时器
function run() { //设置参数
interval = setInterval(chat, "60000");
}
function chat() { //执行函数
//1、获取当前时间
var date = new Date()
var Y = date.getFullYear()
var M = date.getMonth() + 1
var D = date.getDate()
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
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", "http://localhost/Image/Index/reminders.png");
$(".remind img").bind({
mousemove: function () {
$(this).css("cursor", "pointer");
$(this).attr("src", "http://localhost/Image/Index/remingers.hover.png");
},
mouseout: function () {
$(this).attr("src", "http://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;
}
PS:作为职场新人,欢迎大牛批评指正,小弟不胜感激!
视图层:
1、设置定时器,根据自己的业务需求设置定时器时间和当前时间的格式
2、触发 Ajax 时尽量减少请求次数,做一个服务器是否响应的判断
$(function () {
run(); //加载页面时启动
var interval; //设置定时器
function run() { //设置参数
interval = setInterval(chat, "60000");
}
function chat() { //执行函数
//1、获取当前时间
var date = new Date()
var Y = date.getFullYear()
var M = date.getMonth() + 1
var D = date.getDate()
var h = date.getHours();
var m = date.getMinutes();
var s = date.getSeconds();
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", "http://localhost/Image/Index/reminders.png");
$(".remind img").bind({
mousemove: function () {
$(this).css("cursor", "pointer");
$(this).attr("src", "http://localhost/Image/Index/remingers.hover.png");
},
mouseout: function () {
$(this).attr("src", "http://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;
}
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- Ajax
- $.ajax()方法详解
- jQuery ajax - ajax() 方法
- 使用Ajax实现异步用户名验证
- 使用ajax实现用户登录验证(升级版)
- XML 与 JSON 优劣对比
- 解决Ajax悬停效果,无法遮蔽FLASH的问题
- VBA将excel数据表生成JSON文件
- 再谈Jquery Ajax方法传递到action(补充)
- Dom在ajax技术中的作用说明
- newtonsoft.json解析天气数据出错解决方法
- AJAX实现瀑布流触发分页与分页触发瀑布流的方法
- 使用Ajax实时检测"用户名、邮箱等"是否已经存在
- 探讨Ajax中同步与异步之间的区别
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- ajax中data传参的两种方式分析