|
|
|
|
|
для: bronenos
(08.06.2007 в 11:30)
| | Наверное вот так правильнее будет:
if(processReqChange())req=false; | |
|
|
|
|
|
|
|
для: coloboc66
(08.06.2007 в 11:23)
| | я как раз наоборот... обычно если дело об объекте, а не скалярной величине - юзаю null =) | |
|
|
|
|
|
|
|
для: bronenos
(08.06.2007 в 11:11)
| | Фиг его знает... boolean я доверяю больше. | |
|
|
|
|
|
|
|
для: coloboc66
(08.06.2007 в 09:45)
| | мм... можно null? | |
|
|
|
|
|
|
|
для: bronenos
(08.06.2007 в 09:35)
| | Не знаю, насколько корректно работает этот оператор. Я при загрузке страницы пишу var ajax=false; В функции аякса пишу
ajax.onreadystatechange=verify;
function verify()
{
if (req.readyState == 4)
{
if (req.status == 200){
processReqChange();//здесь обработка ответа сервера
req=false;
}
else alert("Не удалось получить данные:\n"+req.statusText +' '+req.status+ajax.url);
}
}
|
| |
|
|
|
|
|
|
|
для: coloboc66
(08.06.2007 в 09:07)
| | delete ajax;
если вы про это, то недавно решил это вставить | |
|
|
|
|
|
|
|
для: bronenos
(07.06.2007 в 15:50)
| | Я во избежание некорректной работы аякса после каждого запроса к серверу удаляю объект аякса, а перед каждым запросом к серверу снова его создаю, а вы это делаете? | |
|
|
|
|
|
|
|
для: bronenos
(07.06.2007 в 13:14)
| | я сейчас расставил лог и после 15 минут наблюдений понял, что бываеют моменты, когда после send, onreadystatechange функция не вызывается - у меня срабатывает команда, стоящая сразу после сенд и не срабатывает, стоящая первой строчкой в онредичейндж | |
|
|
|
|
|
|
|
для: coloboc66
(07.06.2007 в 09:19)
| | да нет.... вот мой код, отвечающий за сообщения....
не задавайтесь вопросами того, как это выглядит - это мой класс..
/* Функция загрузки сообщений */
function run_load (type)
{
var ajax = new ajax_stream();
ajax.open ('chat.php', function()
{
if (!ajax.status_ok())
return;
messages = ajax.response().split ('\n');
messages_to_div (messages);
/* И ставим таймер на обновление */
if (!type) setTimeout ('run_check();', 2000);
});
ajax.send ({
'sid' : sid,
'action' : 'load',
'down' : parent.options.show_down
});
}
/* Функция проверки новых сообщений */
function run_check()
{
if (typeof(parent.options) == 'undefined')
{ setTimeout ('run_check();', 200); return; }
var ajax = new ajax_stream();
ajax.open ('chat.php', function()
{
if (!ajax.status_ok())
return;
var last = ajax.response();
/* Если полученная контрольная сумма строк не совпадает с предыдущей */
if (last != hash)
{
/* Обновляем предыдущую */
hash = last;
/* Загружаем сообщения */
run_load();
}
else setTimeout ('run_check();', 2000);
});
ajax.send ({
'sid' : sid,
'action' : 'check'
});
}
|
| |
|
|
|
|
|
|
|
для: bronenos
(06.06.2007 в 21:14)
| | Таймер может работать бесконечно. Может быть, у вас в коде проверяется состояние ответа сервера и логика кода такова, что таймер останавливаетс при отрицательном ответе сервера? Я заметил в своём чате, что во время своей работы аякс время от времени выдаёт ошибку запроса к серверу (501 Bad Request), это скорее всего сервер виноват. Вот может у вас таймер и останавливается по этой ошибке? | |
|
|
|
|