PHP,ExtJS和永不结束的ajax请求

时间:2016-08-02 08:01:40

标签: javascript php ajax extjs

在我的JavaScript应用程序(内置ExtJS,如果它很重要)中,我对一些PHP脚本进行了ajax调用,该脚本执行一些相对较长的任务。这个脚本如何结束:

$guid = getGUID();
file_put_contents('tmp/' . $guid . '.json', json_encode($olap_data));   
$res = new stdClass;
$res->success = true;
$res->guid = $guid;
echo json_encode($res);

当我进行这个ajax调用时,我发现在大约30秒内(不是很长),tmp文件夹中出现了一个json文件。但是,脚本仍然永远不会更改其状态。我在控制台看了几十分钟这张照片:

enter image description here

重要的行标记为蓝色。正如您所看到的,它的状态永远不会改变。我想,这是因为ExtJS和我应用这些覆盖来增加超时:

Ext.define("Ext.override.data.Connection",{override:"Ext.data.Connection", timeout:30000000});
Ext.define("Ext.override.Ajax",{override:"Ext.Ajax", timeout:30000000});
Ext.define("Ext.override.data.proxy.Ajax",{override:"Ext.data.proxy.Ajax", timeout:30000000});
Ext.define("Ext.override.form.action.Action",{override:"Ext.form.action.Action", timeout:30000});

但它没有帮助。那有什么问题?

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。事实上整个问题都是ExtJS。从版本ExtJS 5开始,现在我们必须添加这行代码以增加超时时间:

Ext.Ajax.setTimeout(big_number_for_long_requests);