03 августа 2007

Отладка AJAX приложений

Пишу проект, да все бы ничего да вот поймал себя на том что при
getJSON (jquery) или jsHTTPrequest пишу вставки PHP типа:
echo"alert('До сюда дошли нормально')";
Это приходит как json, выполняется и я получаю сообщение.
Вообщем изврат полный.
В чем же проблема отладки AJAX ?
Написав некорректный код, придется искать где ошибка в PHP или JS, и
какая, собственно это не большая проблема, т.к. логи все же видно и
сообщения PHP видно, правда покареженые и с тэгами, но разобраться
несложно, однако это пока проект маленький (гхыыы.. что значит
маленький - я писать не буду конечно). Затем начинаешь замечать, что
много времени проводишь в отладке, пытаешься разглядеть нужный текст и
выяснить причины, чего там пришло от PHP по XMLhttp.
Вроде решения лежат на поверхности - HackerConsole. Ставь да тести.
Однако это решение мне не очень подошло, т.к.
jtHTTPrequest + HackerConsole =
http://forum.dklab.ru/comments/lib/5Debug_hackerconsoleTheHackerConsoleSimplifyingDebuggingOfSites.html?start=80
Вообщем Дима не решает этот вопрос да и если бы и решил, то в каждый
код пришлось бы вставлять надоедливые
include_once "lib/config.php";
require_once "Debug/HackerConsole/Main.php";
new Debug_HackerConsole_Main(true);
function debug($msg){call_user_func(array('Debug_HackerConsole_Main', 'out'), $msg);}

Залил Оперу 9.2, там есть отладка.. есть да ни к чему мне DOM
просматривать, время уйдет еще больше.
Как и FireBug тем более lite.
хотя там можно руками писать alert(document.getEleme...)
А при F5 обновлении снова писать.
Умереть легче.
Отладка JS кода - не пробовал.
Zend - пробовал но устал сервак настраивать и выкинул.
Что нужно ? перехватчик заголовков может быть ?
Ну может, но по сути echo alert - то же самое, однако нельзя проверить
логику работы JS
Ну что за фигня ?
А как надо-то ?
Димка Котеров все же верно писал: Перехватим все ошибки PHP и отправим
их в виде валидного JS, а там .. а там eval стоит.
т.е. выполняем и получаем ДАННЫЕ.. но мне не данные надо а отладку.
т.е. Еще до отправки надо сформировать массив _RESULT куда поместить
отладочный текст там кстати у него и был такой text.
Ну да а если обстрагироваться, может я не хочу jshttp?!
Тогда надо Формировать отладочный код JS, который выполнится при
получении у клиента.
И неважно как мы получим .. скорее всего это будет обрабатывать eval,
без валидатора.. аааа.. черт Валидаторы.
Сейчас мода пошла на валидацию JSON.т.е. код не протащщить.Ну значит
остается такой вариант, что
у нас должен быть свой eval, без ограничений.
Ну а как же передача параметров ?
Ведь синтаксис запросов xmlHTTP везде разный, если подменять запросы
для всех библиотек - устанешь.
Выбора нет.. вроде.
Придется использовать конкретное решение.
т.к. я использую jsHTTP то и отладка в нем будет такой что придется
создать функцию для помещения текста в другой a->alert('a');
и запихивание этого в include php.
Вызов будет простым d('Отладим?')?
На сторое это естесно приведет к alert
Ах да.. возможно что Zend еще поможет.
Хотя я не знаю как он работает.
пойду поковыряю zend и phped
ни шагу больше без отладки


Видеочат рулетка