大家好:
最近在做一个新任务提醒功能;如:网站后台每天有好多新订单,员工查询后把所有的订单查询出来,如果是上午10:00点击的查询按钮,当然也就把最新的订单给查询出来了(查询10:00前的未处理单子),现在要做一个提醒功能,员工在处理每个订单时,不用再查询,直接把10:00后最新的订单数量提示出来。员工要是再点击查询按钮,查询订单,则提示的最新订单应该为0;如果再有新订单来了,则会把刚才点击查询按钮时间后的订单数量查询显示出来。 此时遇到一个问题,设置10秒去数据库查询最新订单(点击查询按钮后的新订单),第一次去点击查询按钮,调用ajax去数据库查询,在后台写了一个打印时间的语句,检测一下确实是10秒访问一次;
但是我第二次点击查询按钮,再检测后台打印时间语句,发现少于10秒就访问一次后台,点击第三次发现就平凡访问后台,这样数据库哪受的了啊?
实现代码如下:
var time=10*1000//单位时间调用ajax进行查询
function awakeNewTask(){
sendRequest('/awakeNewTask.do');
setTimeout("awakeNewTask()",time);
}
为什么访问点击第二次,或者第三次查询新订单,就不会以10秒钟为单位调用ajax了呢?
是不是有好几个线程了呢?
在此感谢大家,祝工作顺利,家人身体健康!
最近在做一个新任务提醒功能;如:网站后台每天有好多新订单,员工查询后把所有的订单查询出来,如果是上午10:00点击的查询按钮,当然也就把最新的订单给查询出来了(查询10:00前的未处理单子),现在要做一个提醒功能,员工在处理每个订单时,不用再查询,直接把10:00后最新的订单数量提示出来。员工要是再点击查询按钮,查询订单,则提示的最新订单应该为0;如果再有新订单来了,则会把刚才点击查询按钮时间后的订单数量查询显示出来。 此时遇到一个问题,设置10秒去数据库查询最新订单(点击查询按钮后的新订单),第一次去点击查询按钮,调用ajax去数据库查询,在后台写了一个打印时间的语句,检测一下确实是10秒访问一次;
但是我第二次点击查询按钮,再检测后台打印时间语句,发现少于10秒就访问一次后台,点击第三次发现就平凡访问后台,这样数据库哪受的了啊?
实现代码如下:
var time=10*1000//单位时间调用ajax进行查询
function awakeNewTask(){
sendRequest('/awakeNewTask.do');
setTimeout("awakeNewTask()",time);
}
为什么访问点击第二次,或者第三次查询新订单,就不会以10秒钟为单位调用ajax了呢?
是不是有好几个线程了呢?
在此感谢大家,祝工作顺利,家人身体健康!
等于你给的这片代码执行多次了,有多个function实例,每个都轮流10秒查数据库。
setTimeout("awakeNewTask()",time);
function awakeNewTask(){
sendRequest('/awakeNewTask.do');
}
处理订单 建议监视数据库的增加操作 没有一直访问数据库的,,,,,,,,,,,那哪能受了啊,,,,,,10秒一次10秒一次的,,,,,,,况且订单很多,,,,,,,,
定义一个状态State.a,,,如果执行的orderService.add(Order order)方法则这个State.a=1,可以用ajax读这个状态 然后做出相应处理
谁说js没有多线程了,明明有的,鄙视楼上