Проблема, с которой я сталкиваюсь, заключается в том, что некоторые из моих запросов 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
}
});
Я думаю, корень проблемы может быть в значении результата, которое я должен вернуть со стороны сервера клиенту. Вероятно, должны быть некоторые необходимые аргументы (например, «успех»: «правда» — нужно ли мне это?) Или что-то еще.
У вас есть 3 способа узнать, в чем проблема:
1) Добавьте сбой: function () в ваш код extjs:
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 «response». Это как точка останова в вашем коде.
2) Есть журнал ошибок для apache.
http://www.cyberciti.biz/faq/apache-logs/
3) С помощью IDE, такой как phpStorm, вы можете поместить некоторую точку останова в ваш файл php и посмотреть, вызван ли файл javascript
Других решений пока нет …