我面临的问题是,我的一些ajax请求可能非常繁重,从某种意义上说它们会进行大量计算。在这种情况下,我可以在我的服务器代码中注册程序的完成(只需将一些调试消息放入文本文件),但在我的客户端代码中,我无法执行回调函数。例如:
Ext.Ajax.request({
url:'computation.php', // it may take 5-10-20 or more seconds to complete
loadMask:true,
params:{...}, // some extra parameters
method:'POST',
success:function (result,request){
alert("Done!!!"); // If the procedure takes too long, I do not see this echo
}
});
我猜,问题的根源可能在结果值中,我应该从服务器端返回到客户端。可能应该有一些必要的论点(比如“成功”:“真实” - 我需要它吗?)或其他什么。
答案 0 :(得分:1)
您有3种方法可以知道问题所在:
1)在你的extjs代码中添加一个失败:function():
Ext.Ajax.request({
url:UrlOfThePhpFile,
method:'POST',
params:{yourParamName:yourParamContent},
success:function(response){
console.log("Ajax call is a success")
debugger;
},
failure:function(response){
console.log("Ajax call failed")
debugger;
}
});
在Chrome中打开开发工具,感谢"调试器;"你可以检查var"响应的内容"。它就像代码中的断点。
2)apache有一个错误日志。 http://www.cyberciti.biz/faq/apache-logs/
3)使用像phpStorm这样的IDE,你可以在php文件中加入一些断点,看看文件是否被javascript调用