网站开发进阶 (十九) 计划任务功能——信息自动弹出
一、前言
在项目开发中需求如下:用户在购药 APP 发出购药请求后,匹配送货的药店端在登陆后或处于在线状态时,系统会以弹窗形式进行信息提示。
初步尝试在控制器中使用window.load
方法解决,但失败了。估计放在单个页面中不以分离的形式应该会起作用。
//应用 window.onload 方法
二、思路
在经过多次尝试无果后,自己重新整理了一下思路。完成以上功能主要包括 2 点:
1. 设置一个标志用户登录的标志;
2. 设置定时器(有关定时器详见博文“Java 实现定时器(Timer)”)。因为只有在管理员登陆之后,通过定时检查是否有新的订单出现。逻辑图如下所示:
三、编程实现
对于“设置一个标志用户登录的标志”的要求,可以采用在用户登录成功之后再调用的方式替换。可采用如下代码实现:
四、confirm 用法
如果用户点击确定按钮,则 confirm()
返回 true。如果点击取消按钮,则 confirm()
返回 false。
在用户点击确定按钮或取消按钮把对话框关闭之前,它将阻止用户对浏览器的所有输入。在调用 confirm()
时,将暂停对 JavaScript
代码的执行,在用户作出响应之前,不会执行下一条语句。
对于“设置定时器”的要求,可采用如下代码实现:
五、window.setInterval()函数的用法
javescript
网页页脚函数,该函数的意义是让浏览器定时执行一些设定好的函数代码,如:window.setInterval('abc()',3000);
即浏览器第隔 3 称秒都会执行一次 abc 函数。
现在能够实现的功能是用户登陆之后,若有新的订单,则会进行弹窗提醒。若用户选择查看订单,则会跳转到“订单管理”页面,然后在“订单管理”页面定时刷新。
六、问题
若用户处于别的管理界面中,即使有新的订单到来,服务端后台会执行查询并返回相应结果。但是管理端前台无法实现弹窗提醒效果。这是一个缺陷。需要寻求一种方法实现弹框可以总是出现在最前端。
解决思路
想起了一种新的解决思路:自己创建一个新的弹出框,在每个状态页面执行订单查询操作,若有新的订单需求到来,则进行弹窗提示。
版权声明: 本文为 InfoQ 作者【No Silver Bullet】的原创文章。
原文链接:【http://xie.infoq.cn/article/44c84da5ed88b2908e0e1cf66】。文章转载请联系作者。
评论