Расширения Chrome - асинхронный XHR? - PullRequest
0 голосов
/ 13 декабря 2010

Я ищу способ отправки асинхронных запросов через XHR:

http://code.google.com/chrome/extensions/xhr.html

На самом деле я пытаюсь отправить запросы сразу после загрузки страницы:

$(document).ready(function() {
    var xhr = new XMLHttpRequest();
    xhr.open("GET", "https://myserver.com/", true);
    xhr.onreadystatechange = function() {
        if (xhr.readyState == 4) {
            // Get logged user
            username = $("div.user", xhr.responseText).text()
                    .replace(/.*\(([a-z0-9]*)\).*/, "$1");
        }
    };
});

Но пользовательский интерфейс на самом деле не очень хороший, он зависает до тех пор, пока не получит данные от myserver.com и сразу после этого не отобразит всплывающее окно .

Есть ли способ сначала отобразить всплывающее окно и после этого показать некоторую загрузку текста / изображения пользователю и ПОСЛЕ того, чтобы начать отправку запросов?

1 Ответ

1 голос
/ 13 декабря 2010

Если вы уже используете jquery, то почему бы не использовать удобную оболочку jquery ajax:

$(document).ready(function() {
    getData();
});

function getData() {
    $.ajax({
       url: "https://myserver.com/",
       type: "GET",
       dataType: "text",
       success: function(data) {
        username = $("div.user", data.replace(/.*\(([a-z0-9]*)\).*/, "$1");
       }
    });
}

Поместите этот скрипт не внутри <head>, а в конце <body>.Если страница по-прежнему зависает, попробуйте использовать setTimeout:

$(document).ready(function() {
    setTimeout(getData, 0);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...