0

10分ごとに更新されるデスクトップガジェットを作成しています(ここでは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;
}
4

1 に答える 1

0

XMLHttpRequestSJAX(Synchronous Ajax)では、「onreadystatechange」を使用しないでください。コードでは、送信後に応答テキストを直接引き出します。

onreadystatechangeを使用しないでください: https ://developer.mozilla.org/en/xmlhttprequest#onreadystatechange

引き出しの例responseTexthttp ://www.hunlock.com/blogs/Snippets:_Synchronous_AJAX

于 2011-07-21T03:29:04.667 に答える