powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (AJAX) Разные результаты в браузерах, onreadystatechange
15 сообщений из 15, страница 1 из 1
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35415886
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет!

Код: 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.
function prepareRequest() {

    var http_request = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            // See note below about this line
        }
    } else if (window.ActiveXObject) { // IE
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }
    if (!http_request) {
        alert('Ошибка при создании XMLHTTP'); return false;
    }
    return http_request;
}

function jsonMakeRequest(url) 
{
    http_request = prepareRequest();
    http_request.onreadystatechange = function() {  
        if (http_request.readyState ==  4 ) {
            if (http_request.status ==  200 ) {
                alert(http_request.responseText);
            } else {
                alert('There was a problem with the request.');
                http_request.responseText = '';
            }
        }
    }
    
    http_request.open('GET', url);
    http_request.send(null);
    alert('jsonMakeRequest');
    
    return http_request.responseText;
}

В Internet Explorer и Opera при вызове jsonMakeRequest() сначала выпадает 'jsonMakeRequest', а затем только ответ с сервера alert(http_request.responseText). В FireFox работает все отлично (сначала ответ alert(http_request.responseText), потом - alert('jsonMakeRequest')).
Как заставить функцию дождаться сначала ответа, а потом вернуть результат?

Заранее спасибо!

На скриншоте видно, что окно с сообщением 'jsonMakeRequest' неактивно, т.к. вызвано было раньше.
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416141
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это п....ц, ты про синхронные-асинхронные запросы-то почитай
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416195
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если данные в формате JSON. Нафига реквест-то?
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416198
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо!

Забыл, что у open() несколько параметров.

http://www-128.ibm.com/developerworks/ru/library/wa-ajaxintro2/
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416275
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нахрена ссылка на ИБМ (без тебя знаем). Сделай всё по-человечески, тогда и давай тынцы.
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416315
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeЕсли данные в формате JSON. Нафига реквест-то?
не понял мысль, а нафига вообще реквесты нужны?:)
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416637
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы ShSergeЕсли данные в формате JSON. Нафига реквест-то?
не понял мысль, а нафига вообще реквесты нужны?:)
JSON легко превращяется в JSONP, который есть альтернативный вариант асинхронной загрузки (без реквеста).
Если данные возвращать не в виде строки "JSON_строка", а в виде "myCall(JSON_строка)".
Где нибудь хоть на кнопка клик:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
function knopkaClick(){
scr=document.createElement("SCRIPT");
scr.src="мой_любимый_УРЛ";
}
////////////////
function myCall(str){
//обработка ассоциативного массива str.
}
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35416687
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, забыл в верхнем скрипте написать аппенд:
Код: plaintext
1.
2.
3.
4.
5.
function knopkaClick(){
scr=document.createElement("SCRIPT");
scr.src="мой_любимый_УРЛ";
document.body.appendChild(scr);
}
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418263
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм, и на сколько у меня разрастется документ, если я поработаю с таким сайтом, скажем, пол часа? херня это все, да и результат подгрузки ждать сложнее.
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418317
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зыхм, и на сколько у меня разрастется документ, если я поработаю с таким сайтом, скажем, пол часа? херня это все, да и результат подгрузки ждать сложнее.
Не разрастётся абсолютно (одно другое замещает). А про результат загрузки - я уже где-то на форуме приводил пример в несколько мегабайтов, реквест не хотел работать, а у меня всё ок.
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418709
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с тем, что идея имеет полное право на жизнь.
Но, во-первых, если будет проблема отправки-приема и это учитывать, то, пожалуй, имея такой (почти ненужный и бестолковый) параметр как readyState, можно проанализировать ошибку и все же выдать сообщение ... хотя бы. При jsonp мы лишены такого "счастья".
Во-вторых, способ не универсальный, так как реакцию на получение мы прописываем уже на сервере, тогда как бывают запросы, которые используются в разных местах и используют полученную информацию по-разному, а делать разветвления на сервере и вгонять какой-то список в жесткие рамки неудобно, нерационально и неправильно.

Поэтому, повторюсь, способ сам по себе и для использования в нужных для этого местах, мне лично очень понравился - сам раньше как-то не задумывался над ним, но панацеей или заменой реквесту не считаю. Все же технология есть технология ...
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418775
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и в-третьих, GET запросы - зло :)

кстати не понял где там что замещает... или ты код не тот запостил, или что-то фантазируешь
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418866
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы , ёлки-палки, задолбался рекламировать технологию. Неужели не понятно. Проспитесь. Весь гугель на этом построен. Ну, и чего ты сделаешь со своим долбаным сервисом на реквесте (нельзя на другой домен полезть)?
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35418896
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче, переходим. Ёлки-палки, скоко рекламировать нужно. Гуглы - перешли, а вы - репу чешете (типа, а хрен его знает?). У них вся технология на энтом построена. Включаешь у себя их скрипт - работает. Может кто другую кроссдоменную технологию знает (реквест - не потянет)?
Та же карта (гугл еартх), твоють!
...
Рейтинг: 0 / 0
(AJAX) Разные результаты в браузерах, onreadystatechange
    #35424876
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а автор что, просил кросс-доменные запросы реализовать?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / (AJAX) Разные результаты в браузерах, onreadystatechange
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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