【发布时间】:2011-01-20 12:33:57
【问题描述】:
我正在使用 CakePHP 开发一个应用程序,该应用程序必须通过单个 AJAX 调用运行一项耗时的任务,并通过辅助定期 AJAX 调用检查任务的进度。
问题
虽然耗时任务(需要 >30 秒)通过其对 CakePHP 的 AJAX 请求运行,但辅助进度 AJAX 请求似乎无法“阻塞”。
为了澄清,二次进度AJAX请求不返回任何错误,它只是在原始耗时请求完成之前不返回任何响应。
一旦这个原始 AJAX 请求完成,次要进度 AJAX 请求就会按预期返回。
似乎进度请求的执行正在排队等待第一个 AJAX 调用完成,因为返回的进度是 100%。
我的尝试
我尝试了多种建议的解决方案,包括:
- 在 core.php 中将会话处理程序更改为 'cake' - 无修复
- 在 core.php 中将配置安全级别设置为“中等” - 无修复
- 在 core.php 中禁用用户代理检查 - 无修复
- 在同一服务器上测试对纯 PHP 脚本的多个并发 AJAX 调用 - 按预期工作
有什么想法吗?
所以问题似乎是由 CakePHP 引起的 - 有没有人在自己的 CakePHP 应用程序中遇到过这种情况?
谢谢!
【问题讨论】:
标签: ajax cakephp concurrency request blocking