Простой вопрос ajax о IE8, Firefox3.6 и Chrome - PullRequest
2 голосов
/ 16 марта 2011

Javascript код:

var httprequest = new XMLHttpRequest();
var time = new Date();
if (httprequest) {
  httprequest.onreadystatechange = function () {
    if (httprequest.readyState == 4) {
      alert("OK");
    }
  };
  httprequest.open("GET", "http://www.google.com", false);
  httprequest.send(null);
}
alert(new Date() - time);

IE8: ОК, диалоговое окно времени будет быстрым Chrome10: диалоговое окно ОК отображается, но диалоговое окно времени не отображается Firefox3.6: ОК, диалог времени не будет отображаться

Почему в каком-то диалоговом окне нет подсказки?

Ответы [ 2 ]

1 голос
/ 16 марта 2011

httprequest.send (null) в вашем случае вообще не возвращается - он блокирует выполнение кода js, поэтому что-либо после этой строки не выполняется - я не могу сказать вам, почему это происходит, это может бытьособенности реализации в конкретном браузере или что-то еще.

То, что вы хотите здесь сделать, - это запустить его асинхронно: изменить "false" на "true" при вызове метода "open":

httprequest.open("GET", "http://www.google.com", true);

В связанной заметке - если вы хотите начать играть с ajax, попробуйте некоторые фреймворки javascript, такие как jQuery - они отлично справляются с задачей облегчения вашей жизни как разработчика js, предоставляющего нейтральные для браузера методыработа с DOM, событиями, ajax и т. д.

0 голосов
/ 16 марта 2011

Привет максимумов Ваш код в порядке, и ответ Андрея отличный, у меня есть 2 примечания:)

1- XMLHttpRequest Не удается отправить запрос на внешнюю сторону вашего домена, если вам нужно запросить страницу вне домена, сделайте это на стороне сервера.

2- в записке Андрея, чтобы бежать в jquery, извините, я не с ним, потому что вы должны узнать все о JavaScript сначала, чтобы стать профессионалом, а затем поиграть с jquery с полным пониманием того, что делает jquery, мой выбор не быть пользователем какой-то библиотеки, прежде чем стать профессионалом JavaScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...