求教AJAX发送次数过多过快造成服务器拒绝怎么解决

tiyee 2012-04-20 03:31:59
因为数据表数据比较多,有几万,
生成静态的时候,我是用AJAX发送ID,发送一个ID生成一个静态页面,
然后PHP返回这个ID,ajax接受到这个ID后再发送下一个ID,如此循环,
结果根据firbug显示发现,生成一个页面大约30MS,生成一会,服务器就拒绝,生成就停止了,
请问如何解决?我把PHP生成静态页面运行程序暂停300MS还是不行。
...全文
247 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
liang123748289 2012-04-21
  • 打赏
  • 举报
回复
处理的条数尽量少,估计就可以了处理的条数尽量少,估计就可以了
xuzuning 2012-04-21
  • 打赏
  • 举报
回复
1、楼主只说“JS收到这个返回的ID,就发送这个ID+1.”,明显存在递归调用,导致资源耗尽
2、因为没有说明,所以不能排除服务器端因数据引起的故障
kaifadi 2012-04-21
  • 打赏
  • 举报
回复
6楼的那个页面倍拒绝给的信息太人性化了(您的浏览器页面暂时发生错误),在FF控制台看看响应和头信息部分返回的是否有503或者其他具体英文提示?
coder 2012-04-20
  • 打赏
  • 举报
回复
处理的条数尽量少,估计就可以了
tiyee 2012-04-20
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

你这是个什么操作?在生成下一次时上一次的ajax是否执行完毕!你是在ajax的回调函数中递归调用生成的吗?出现这种状况会不会是资源被耗尽了
[/Quote]
发送和回调是分开的,
回调在接受到PHP的返回状态后就再次调用发送JS,当然这个回调里还有个判断ID是不是到头了。




现在问题解决了,我一次生成300个页面,大约用时6S,基本没有停住了。看来还是请求次数太多的原因把
libo_sina 2012-04-20
  • 打赏
  • 举报
回复
你这是个什么操作?在生成下一次时上一次的ajax是否执行完毕!你是在ajax的回调函数中递归调用生成的吗?出现这种状况会不会是资源被耗尽了
amani11 2012-04-20
  • 打赏
  • 举报
回复
,,服务器反应挺快啊,,建议每次多生成一些页面


贴js代码看看,,

你的错误,是不是程序里限制啦某个ip的访问频率?
tiyee 2012-04-20
  • 打赏
  • 举报
回复
图片在这
tiyee 2012-04-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

你怎么知道 服务器就拒绝,生成就停止了 。请贴出相关出错信息。
另外,你如何生成静态页面的?
[/Quote]


因为数据表有个主键ID,
我点了生成后,JS就发送这个ID,PHP接受到这个ID,就调用数据生成静态,生成了后就返回它收到的这个ID。
JS收到这个返回的ID,就发送这个ID+1.
一起混吧 2012-04-20
  • 打赏
  • 举报
回复
你怎么知道 服务器就拒绝,生成就停止了 。请贴出相关出错信息。
另外,你如何生成静态页面的?
黄袍披身 2012-04-20
  • 打赏
  • 举报
回复
是否必须要重新生成静态页面?
qq120848369 2012-04-20
  • 打赏
  • 举报
回复
IP被限了吗,提交的ajax的时候setheader设置一下keep-alive,服务器也适当提高keep-alive的空闲时间。

改一下昵称 2012-04-20
  • 打赏
  • 举报
回复
浏览器端可以判断ajax状态码,如果不是200就重新发送。

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧