关于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执行一分钟后才刷新成功。

在线等。望大神指点指点!!!!!!!!!
展开
 我来答
百度网友7caee40
2012-12-17 · 超过27用户采纳过TA的回答
知道答主
回答量:120
采纳率:0%
帮助的人:67.5万
展开全部
首先声明一下,我不是做php的,但是这种情况在java里面也会遇到,你可以参照一下,我目前采取的办法如下:
1、如果a.php处理的是全局不变的内容,则使用静态化方式将a.php的内容转换成*.html,在多次调用时,先判断转换成的文件是否存在,如果不存在进行生成,否则直接调用;
2、如果a.php处理的内容时需要定期刷新的,则使用timer组件进行定时作业,其他部分采取与第一种相同方式即可;
3、在判定是否执行时,可采用static变量进行锁定。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式