关于AJAX的执行状态判断 30
是这样的:网站页面有一个按钮当触发后执行Ajax,开始异步执行a.php后台程序。a.php执行时间较长需要一分多种才能够执行完成。我现在遇到这样一个问题,假如就我一个人...
是这样的:
网站页面有一个按钮当触发后执行Ajax,开始异步执行a.php后台程序。a.php执行时间较长需要一分多种才能够执行完成。
我现在遇到这样一个问题,假如就我一个人打开这个网站触发了按钮,然后一分钟后当然就要到了自己想要的结果,但是假设有100个人甚至更多,同时打开了这个网站并同时触发按钮,程序运行当然是没问题的。不过这100个人触发的a.php都在做同样的工作,得到的也是同样的结果,显然是没必要的,是毫无意义的增加了服务器的压力。
所以,我现在在想有没有一种方法可以当触发按钮时,先进行判断,如果a.php已经在执行了那么当前就return FALSE不要继续了。
我本人想到了一个笨方法,即当a.php在执行时update数据库set remark字段为1(remark默认为0),当a.php执行完了后在最后再update数据库set remark为0,这样确实实现了我要的效果。但又遇到新的问题,在不用这种方法之前当Ajax a.php时因为是异步传输我可以任意刷新当前页,但当我按前面的方法处理后再刷新当前页就会假死直到a.php执行一分钟后才刷新成功。
在线等。望大神指点指点!!!!!!!!! 展开
网站页面有一个按钮当触发后执行Ajax,开始异步执行a.php后台程序。a.php执行时间较长需要一分多种才能够执行完成。
我现在遇到这样一个问题,假如就我一个人打开这个网站触发了按钮,然后一分钟后当然就要到了自己想要的结果,但是假设有100个人甚至更多,同时打开了这个网站并同时触发按钮,程序运行当然是没问题的。不过这100个人触发的a.php都在做同样的工作,得到的也是同样的结果,显然是没必要的,是毫无意义的增加了服务器的压力。
所以,我现在在想有没有一种方法可以当触发按钮时,先进行判断,如果a.php已经在执行了那么当前就return FALSE不要继续了。
我本人想到了一个笨方法,即当a.php在执行时update数据库set remark字段为1(remark默认为0),当a.php执行完了后在最后再update数据库set remark为0,这样确实实现了我要的效果。但又遇到新的问题,在不用这种方法之前当Ajax a.php时因为是异步传输我可以任意刷新当前页,但当我按前面的方法处理后再刷新当前页就会假死直到a.php执行一分钟后才刷新成功。
在线等。望大神指点指点!!!!!!!!! 展开
1个回答
展开全部
首先声明一下,我不是做php的,但是这种情况在java里面也会遇到,你可以参照一下,我目前采取的办法如下:
1、如果a.php处理的是全局不变的内容,则使用静态化方式将a.php的内容转换成*.html,在多次调用时,先判断转换成的文件是否存在,如果不存在进行生成,否则直接调用;
2、如果a.php处理的内容时需要定期刷新的,则使用timer组件进行定时作业,其他部分采取与第一种相同方式即可;
3、在判定是否执行时,可采用static变量进行锁定。
1、如果a.php处理的是全局不变的内容,则使用静态化方式将a.php的内容转换成*.html,在多次调用时,先判断转换成的文件是否存在,如果不存在进行生成,否则直接调用;
2、如果a.php处理的内容时需要定期刷新的,则使用timer组件进行定时作业,其他部分采取与第一种相同方式即可;
3、在判定是否执行时,可采用static变量进行锁定。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询