Javascript Auto-fresh XMLHttpRequest проблема - PullRequest
0 голосов
/ 21 июля 2011

Я пишу настольный гаджет, который должен обновляться каждые 10 минут или около того (здесь десять секунд).Я определил, что каждый раз, когда я выполняю setTimeout, XML не загружается снова.

Я не знаю, что это за проблема.Я убедился, что объектам присвоено значение null, но они не инициализируются повторно, и у меня остался пустой объект XML.

setTimeout("bg_load();getXML()",10000);

function getXML()
{                   
    stat = readSetting();
    url = "http://www.weather.gov/xml/current_obs/" + stat[0] + ".xml"

    rssObj = new XMLHttpRequest();
    rssObj.open("GET", url, false);
    rssObj.onreadystatechange = function() {
    if (rssObj.readyState === 4) {
        if (rssObj.status === 200) {    
            document.getElementById("gadgetContent").innerHTML = "";    
            rssXML = rssObj.responseXML;
        } else {
            var chkConn;
            document.getElementById("gadgetContent").innerHTML = "Unable to connect...";                
        }
    } else {
        document.getElementById("gadgetContent").innerHTML = "Connecting...";
        }
    }   
    rssObj.send(null);

getImage(rssXML);
getText(rssXML);

rssObj = null; rssXML = null;
}

1 Ответ

0 голосов
/ 21 июля 2011

С SJAX (синхронный Ajax) вы не должны использовать 'onreadystatechange', а в коде вы извлекаете текст ответа непосредственно из XMLHttpRequest после отправки.

Не использовать onreadystatechange: https://developer.mozilla.org/en/xmlhttprequest#onreadystatechange

Пример вытягивания responseText из: http://www.hunlock.com/blogs/Snippets:_Synchronous_AJAX

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