Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

AJAX: Неужели в FF не работает синхронный ajax запросы???

17K
03 августа 2006 года
=vd=
10 / / 03.08.2006
Столкнулся с проблемой, когда при создании синхронного запроса, он не работает в FF.

 
Код:
xmlObj.open("POST",url,false);
xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlObj.send(postData);



В IE все нормально, а FF вообще молчит - ноль на массу
Причем асинхронный запрос работает и там и там, но он не подходит по общей логике - с сервера возвращаются данные необходимые для дальнейшей работы кода.

Можно ли это как то обойти/исправить? Или это все таки БАГ?

TIA
15
03 августа 2006 года
shaelf
2.7K / / 04.05.2005
Ты бы хотя написал, откеда берётся (читай как создаётся) xmlObj. Сдаётся мне, что через ActiveX
17K
03 августа 2006 года
=vd=
10 / / 03.08.2006
Это сам ajax-connector ему передается помимо url - данные для передачи через POST, callBackFunction - функция которая вызывается после получения результата.
mode - режим работы.

Код:
function ajaxConnect(url, postData, callBackFunction, mode) {
    var xmlObj = new Object(); 
    if (window.XMLHttpRequest) {
        xmlObj = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        //xmlObj = new ActiveXObject("Msxml2.XMLHTTP.3.0");
        xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Error initializing XMLHttpRequest");
        return;
    }
    xmlObj.onreadystatechange = function(){
        if(xmlObj.readyState == 4){
            if (xmlObj.status == 200) {            
                var elArr = xmlObj.responseXML.getElementsByTagName('root')[0].childNodes;
                if (callBackFunction != "") {                  
                    callBackFunction(elArr);
                } else {
                    return true;
                }
            } else {
                alert("There was a problem retrieving the XML data");
                return false;
            }
        }
    }
    xmlObj.open("POST",url,mode);
    xmlObj.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlObj.send(postData);
}


Вызов функции:
 
Код:
...
var postData = "wordlist="+encodeURIComponent(strWordList);
var url = "/admin/spell/spell_checking.php?Lang="+Lang;
var callBackFunction = spellResultHandle;
ajaxConnect(url, postData, callBackFunction,false);
...


spellResultHandle - обрабатывает результат и формирует глобальный объект, который должен использоваться дальше в коде вызывающей функции. Поэтому и нужен синхронный режим запроса.
В случае асинхронного запроса - и FF и IE и Opera функционируют нормально,
А вот в синхронном режиме - FF не работает.
--
Да, Firefox 1.5.0.1
Ошибок никаких не выдает.
Ни xmlObj.readyState ни xmlObj.status никаких значений не принимают - или если быть точнее xmlObj.onreadystatechange вообще ни разу не не срабатывает(!);

Буду признателен за помощь.
20K
08 августа 2006 года
Erinaceus
2 / / 08.08.2006
Такая проблема похоже действительно существует... :(
Сталкнулся с аналогичной ситуацией... необходим именно синхронный запрос, но firefox игнориует ответы сервера... в других браузерах (ie, opera) всё работает без проблем.
Ошибок ff никаких не выдаёт...

Поиск по инету пока успехов не дал, подскажите плиз кто что знает по этому поводу
17K
09 августа 2006 года
=vd=
10 / / 03.08.2006
На самом деле ответ есть и он прост, как все гениальное. Просто если используется синхронный запрос - это уже SJAX. Поэтому просто напросто не следует использовать обработчик событий onreadystatechange а просто после метода send() "снимать результат", например:
 
Код:
result= xmlObj.responseXML.getElementsByTagName('root')[0].childNodes;

ну или что-то в этом роде.

За помошь в нахождении ответа благодарю участника Форума «Лаборатории dk».

За более подробной информацией можно сходить по ссылке:http://kb.mozillazine.org/XMLHttpRequest
20K
09 августа 2006 года
Erinaceus
2 / / 08.08.2006
Спасибо огромное! :)
А истина была совсем рядом...
14K
27 августа 2006 года
111
12 / / 10.11.2005
Помогите разобраться с такой проблемой.
Поставил чат, вроде написан на AJAXe, так автора утверждают :)
Сам я новичОК в этом, пока ;)
Так вот этот чат через 30 сек разрывает я так понял сесию с сервером,так как на другом серваке разрывов нет и работает отлично.
Разрывает при использовании IE, при всех других браузерах работает стабильно.
Так вот в том то и проблема, что большинство пользуются IE и хотелось решить задачу.
Я слыхал что есть такой прикол в Аяксе, помогите разобраться, кто что знает?
15
27 августа 2006 года
shaelf
2.7K / / 04.05.2005
Тебе лучше к автору чата обратиться, этим ты убьёшь 2 зайцев
1. Решишь проблему
2. Поможешь решить её другим (т.к. баг скорее всего залатается).
14K
27 августа 2006 года
111
12 / / 10.11.2005
[quote=shaelf]Тебе лучше к автору чата обратиться, этим ты убьёшь 2 зайцев
1. Решишь проблему
2. Поможешь решить её другим (т.к. баг скорее всего залатается).[/quote]
:) Автор то тут причём.
Я же говорю проблема только на одном серваке на другом всё ништяк.
И если просматривать не в ИЕ а вдругих браузерах то на одном серваке и на другом серваке эти чаты работают.
Я то с удовольсвием перевёл бы на другой сервер домен,но там траф заграничный и не все захотят заходить.
Автор сам не русский,иностранец, как к нему обратиться и с чем ???? :)
15
28 августа 2006 года
shaelf
2.7K / / 04.05.2005
А как ты это себе представляешь? Задал вопрос типа "У меня чат (вероятней всего написан с применением технологии AJAX) и на одном хостинге ослик вылетает через 30 секунд, а на другом всё нормально". Может кому это конечно что и даст, но для меня это равносилено "Доктор, у больного в 23 палате температура 36,6, а после перевода в 26 стала 36,7. В чём проблема, доктор?" Как ты думаешь, он ответит?
14K
28 августа 2006 года
111
12 / / 10.11.2005
[quote=shaelf]А как ты это себе представляешь? Задал вопрос типа "У меня чат (вероятней всего написан с применением технологии AJAX) и на одном хостинге ослик вылетает через 30 секунд, а на другом всё нормально". Может кому это конечно что и даст, но для меня это равносилено "Доктор, у больного в 23 палате температура 36,6, а после перевода в 26 стала 36,7. В чём проблема, доктор?" Как ты думаешь, он ответит?[/quote]

Вопрос я задал правильно.
Сравнение же ты перевёл неудачное!!!
На одном серваке пхп 4 на другом пхп 5
Как думаеш всё будет работать и там и там????
Я же к тому ,может кто подскажет с чем может быть связано в настройках сервера скорее.
Может кто встречал такую проблему.
Знакомый мой сказал что встречал именно по теме AJAX,но к сожалению не нашел статьи так как было это давно.
Я тоже задался поиском,безрезультатно.
Я не понимаю что запрещено вопросы задавать в форумах или тебе делать нечего???
13
28 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
Знакомые телепаты подсказывают мне что дело возможно в умолчальных кодировках которые установлены на сервере... Те самые которые бьют джпеги они же бьют и запросы AJAX'а в которых есть русский текст... А вообще хорошо бы автору дать ссылку на тот сервер где вылетает и на тот где все хорошо. Может кто и поможет
а от версии РНР ничего в AJAX не зависит (ну кроме тех случаев когда РНР код написан под пятую версию)
14K
28 августа 2006 года
111
12 / / 10.11.2005
[quote=RussianSpy]Знакомые телепаты подсказывают мне что дело возможно в умолчальных кодировках которые установлены на сервере... Те самые которые бьют джпеги они же бьют и запросы AJAX'а в которых есть русский текст... А вообще хорошо бы автору дать ссылку на тот сервер где вылетает и на тот где все хорошо. Может кто и поможет
а от версии РНР ничего в AJAX не зависит (ну кроме тех случаев когда РНР код написан под пятую версию)[/quote]

=) про пхп это я для сравнения с тем что мне превели в сравнение про доктора.
по поводу автора,то лучше чтоб он не знал за чат :) ,так как он нуленый.
Ну и с кодировкой тож не то так как там мультиязыковый чат и на любом языке вылетает.
Тут вопрос почему только в ИЕ на одном серваке вылетает,все остальные броузеры держут соединение без проблем.
А на другом серваке все браузеры держат в том числе и ИЕ.
Тут скорее что-то вроде связь ИЕ с сервером, а чат уверен нормальный так как на денвере не вылетает.
Бум ждать может кто что слышал или имеет свои соображения на этот счёт...
14K
28 августа 2006 года
111
12 / / 10.11.2005
Да и кстати чат на БД может это чтото скажет?
Есть еще возможности интеграции его под форумы и цмсы прямо в инсталяторе.
BLAB v.3.3
13
28 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
FORMAT C:
Попробуй с другой вендовой машины
14K
28 августа 2006 года
111
12 / / 10.11.2005
[quote=RussianSpy]FORMAT C:
Попробуй с другой вендовой машины[/quote]
Спасибо, но это тоже не то.
Каждый кто заходил под ИЕ теже проблемы.
Там я так понимаю постоянная связь с БД идёт , а тот сервак скорее не поддерживает постоянку.
Или я даже не знаю.
Я пока зелёный в этом, вот думаю скорей всего в этом проблема.
13
28 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
Если бы проблема была в этом то она распространялась на все браузеры. Выложи тут ссылки - народ посмотрит. Если ты "зеленый" то ты можешь многие вещи и не заметить или неправильно назвать.
14K
28 августа 2006 года
111
12 / / 10.11.2005
[quote=RussianSpy]Если бы проблема была в этом то она распространялась на все браузеры. Выложи тут ссылки - народ посмотрит. Если ты "зеленый" то ты можешь многие вещи и не заметить или неправильно назвать.[/quote]

Вот чат где ИЕ выпадает http://chat.relaxbase.com
Вот чат где всё работает стабильно http://chat.life.lviv.ua
первый вариант сервак в украине
второй вариант в штатах
Файлы везде теже чмод одинаковый так же везде.
14K
28 августа 2006 года
111
12 / / 10.11.2005
кстати относится к функции:


function not_connected(){
if(ajx_sndd==1){allow_flash=flash}else{allow_flash=''}
tit='<br /><br />'+set_disc+'<br /><a href="blab.php?r='+r+'"><b>'+set_clck+'</b></a>'+allow_flash;
if(typeof room_tout=='number'){clearTimeout(room_tout)}
if(typeof chat_tout=='number'){clearTimeout(chat_tout)}
eeB.innerHTML=tit}
13
28 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
[QUOTE=111]кстати относится к функции:


function not_connected(){
if(ajx_sndd==1){allow_flash=flash}else{allow_flash=''}
tit='<br /><br />'+set_disc+'<br /><a href="blab.php?r='+r+'"><b>'+set_clck+'</b></a>'+allow_flash;
if(typeof room_tout=='number'){clearTimeout(room_tout)}
if(typeof chat_tout=='number'){clearTimeout(chat_tout)}
eeB.innerHTML=tit}[/QUOTE]
Очень познавательная функция вне остального контекста.
Что за чат используешь? название и ссылку на родную страницу. Профи форума посмотрят если у них будет время... А я из дома гляну вечером
14K
28 августа 2006 года
111
12 / / 10.11.2005
BLAB v.3.3
[COLOR=#22229c]http://hot-things.net/?q=blab[/COLOR]
14K
28 августа 2006 года
111
12 / / 10.11.2005
Правда пишут что под Оперу тоже идёт, а на самом деле не пашет под Оперу.
Буду очень благодарен если поможете решить проблемку.
13
28 августа 2006 года
RussianSpy
3.0K / / 04.07.2006
AJAX работает под Оперу версий 8.5+
14K
29 августа 2006 года
111
12 / / 10.11.2005
У меня последняя версия Оперы и данный чат не пашет под него.
Даже не знаю путаница такая получается,просто капец...
14K
30 августа 2006 года
111
12 / / 10.11.2005
Ну что слышно по чату?
Будет жить?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог