powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [JS] AJAX + Mozilla FireFox - непонятный косяк
13 сообщений из 13, страница 1 из 1
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35166801
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такое работает в Опера и ИЕ:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
var gms_ajax_response = new String();

function gms_ajax_process(obj){
  if (obj.readyState ==  4 ) {
    gms_ajax_response = obj.responseText;
  }
}
function gms_ajax_get_object(){
  var obj = false;
  if (window.XMLHttpRequest) {
    obj = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    obj = new ActiveXObject("Microsoft.XMLHTTP");
  }
  return obj;
}

function gms_ajax_prepare(obj){
  obj.onreadystatechange = function() {gms_ajax_process(obj);};
}

function gms_ajax_send(obj, addr, method){
  obj.open(method, addr, false);
  obj.send(null);
}

function ajaxGET(addr){
  var obj = gms_ajax_get_object();
  gms_ajax_prepare(obj);
  alert(addr);
  gms_ajax_send(obj, addr, 'GET');
  var i =  0 ;
  while(i <  10000  && obj.readyState !=  4 ){
  	i++;
  }
  return gms_ajax_response;
}
В мазилле не работает, в качестве ответа функция ajaxGET возвращает "undefined". Хэлп, хэлп!!!

СИСЬКИ ДЕВКИ ПОРНО
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35166862
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался сам. Почему-то мазила отказывалась наотрез выполнять мой обработчик, сделал проще:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function ajaxGET(addr){
  var obj = gms_ajax_get_object();
  gms_ajax_response = '';
  gms_ajax_prepare(obj);
  gms_ajax_send(obj, addr, 'GET');
  var i =  0 ;
  while(i <  10000  && obj.readyState !=  4 ){
  	i++;
  }
  if (gms_ajax_response == '') return obj.responseText;
  return gms_ajax_response;
}
Скажу даже больше: пытаюсь воткнуть "gms_ajax_response = obj.responseText" - и gms_ajax_response ПУСТОЙ! Причем obj.responseText очень даже не пустой... Так и не понял, в чем прикол.
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35166980
Garry80
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xxx_G_M_S_xxxРазобрался сам. Почему-то мазила отказывалась наотрез выполнять мой обработчик, сделал проще:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
function ajaxGET(addr){
  var obj = gms_ajax_get_object();
  gms_ajax_response = '';
  gms_ajax_prepare(obj);
  gms_ajax_send(obj, addr, 'GET');
  var i =  0 ;
  while(i <  10000  && obj.readyState !=  4 ){
  	i++;
  }
  if (gms_ajax_response == '') return obj.responseText;
  return gms_ajax_response;
}
Скажу даже больше: пытаюсь воткнуть "gms_ajax_response = obj.responseText" - и gms_ajax_response ПУСТОЙ! Причем obj.responseText очень даже не пустой... Так и не понял, в чем прикол.

Капец... А если респонс придет позже чем цикл досчитает до 10000?
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167142
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Garry80Капец... А если респонс придет позже чем цикл досчитает до 10000?Думал на эту тему... Пришел к выводу, что пока обращаюсь к 127.0.0.1 смысла городить более серьезный огород просто нет Можно вообще итератор, в принципе, выкинуть, я его на этапе тестирования пихал.
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167189
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxx_G_M_S_xxx Garry80Капец... А если респонс придет позже чем цикл досчитает до 10000?Думал на эту тему... Пришел к выводу, что пока обращаюсь к 127.0.0.1 смысла городить более серьезный огород просто нет Можно вообще итератор, в принципе, выкинуть, я его на этапе тестирования пихал.
бугага, жжесткий код. Подумай в таком случае в сторону синхронных запросов (отличается на один флаг), эффект будет такой же, даже лучше и безбажней
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167239
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыбугага, жжесткий код. Подумай в таком случае в сторону синхронных запросов (отличается на один флаг), эффект будет такой же, даже лучше и безбажнейБлин... Не показываешь код - кричат "непонятно", показываешь - ржут...

По существу: а вдруг мне потом понадобиться асинхронный запрос? Кстати, там, вроде, вылет по таймауту можно по readyState отследить - как это делается?
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167305
dennny
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxx_G_M_S_xxx зыбугага, жжесткий код. Подумай в таком случае в сторону синхронных запросов (отличается на один флаг), эффект будет такой же, даже лучше и безбажнейБлин... Не показываешь код - кричат "непонятно", показываешь - ржут...

По существу: а вдруг мне потом понадобиться асинхронный запрос? Кстати, там, вроде, вылет по таймауту можно по readyState отследить - как это делается?
Поставь таймаут и жди по времени - время твоего цикла ессесно отличается на разных тачках.
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167306
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то типа этого, имеешь ввиду (из гугла):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
<head>
<script>
var req;
var reqTimeout;
 
function loadXMLDoc(url) {
    req = null;
    if (window.XMLHttpRequest) {
        try {
            req = new XMLHttpRequest();
        } catch (e){}
    } else if (window.ActiveXObject) {
        try {
            req = new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e){
            try {
                req = new ActiveXObject('Microsoft.XMLHTTP');
            } catch (e){}
        }
    }
 
    if (req) {
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
        reqTimeout = setTimeout("req.abort();",  5000 );
    } else {
        alert("Браузер не поддерживает AJAX");
    }
}
 
function processReqChange() {
    if (req.readyState ==  4 ) {
        clearTimeout(reqTimeout);
        document.body.innerHTML=document.body.innerHTML+'<br>'+req.responseText;
    }  
}
 
function requestdata()
{
  loadXMLDoc('hello.txt');
}

</script>
</head>
<body>
<button onclick="requestdata()">Нажать</button>
</body>
</html>
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35167329
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ога, спс, прочитал, проникся.
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35168021
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxx_G_M_S_xxxРазобрался сам. Почему-то мазила отказывалась наотрез выполнять мой обработчик, сделал проще:

Это эелементарно, Уотсон.
Мозилка не выполняет синхронно onreadystatechange-функцию.
надо делать так

xhr.send()
// а тут прямо вызывайте Вашу функцию
myfunction.call(xhr, ...)
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35168050
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacy
xhr.send()
// а тут прямо вызывайте Вашу функцию
myfunction.call(xhr, ...)Хе, пашет И на вид, по-мойму, правильнее Хотя нет... У меня ж в виде обработчика прикручено было (в Опере и Осле пахало!!!), а тут - явный вызов... Чем лучше того, что я тупо ручками вернул значение?
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35168075
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Синхронный вызов на то и синхронный вызов, что происходит в потоке, как вызов обычной функции.
Обработчик не к чему тут
...
Рейтинг: 0 / 0
[JS] AJAX + Mozilla FireFox - непонятный косяк
    #35168335
xxx_G_M_S_xxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
apapacyСинхронный вызов на то и синхронный вызов, что происходит в потоке, как вызов обычной функции.
Обработчик не к чему тутПока ни к чему... А вдруг понадобиццо? А у меня уже предусмотрено.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / [JS] AJAX + Mozilla FireFox - непонятный косяк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]