簡體   English   中英

Windows 7小工具AJAX停止工作

[英]Windows 7 Gadget AJAX stopped working

我正在編寫一個小工具,它將向我顯示游戲服務器的當前狀態。 它通過返回JSON的URL獲取其信息。 在一開始,它運行良好。 但是現在,它似乎停留在AJAX調用上。

這是我的腳本:

function start() {
$("body").css({
    height: "100px",
    width: "130px",
    margin: 0
});

$("#refresh").click(function (event) {
    event.preventDefault();
    fetch_info();
});

fetch_info();
};

function fetch_info() {
var now = new Date();
var msec = now.getTime();
ajax = new ActiveXObject("Msxml2.XMLHTTP");
ajax.open("GET", "http://the.amazing.url?msec="+msec, true);
ajax.onreadystatechange = function() {
    if (ajax.readyState === 4) {
        if (ajax.status === 200) {
            var json = $.parseJSON(ajax.responseText);
            if (json.map != "error")
            {
                $("#map").html(json.map);
                $("#mode").html(json.gamemode);
                $("#current").html(json.players);
                $("#max").html(json.max_players);
            }
            else
            {
                $("#map").html("crashed");
            }
        } else {
            $("#map").html("error");
        }
    }
    else
    {
        $("#map").html("fetching data");
    }
}    
ajax.send(null);    
}

當窗口小部件啟動時,它顯示“正在獲取數據”,但是此后什么也沒有發生。 它獲取有效的JSON數據。

有誰知道調試該腳本的原因或方法?

有兩個分號錯誤。 它們很可能是在腳本改進期間發生的,分號被刪除了。 第14行不需要分號,而第44行則需要。

第14行:

13:       fetch_info();
14:    }

第44行:

44:    };
45:    ajax.send(null);    
46:    }

至於調試腳本,我使用內置的瀏覽器開發人員工具,例如IE中的F12或Chrome中的開發人員工具。 在制作小工具時,我用一個基本的網頁測試了所有腳本,以便可以觀看瀏覽器的JavaScript控制台。

JSLint也有幫助。 但是,在使用它時,我選擇了以下選項:假定Windows,允許使用未使用的參數,允許缺少“使用嚴格的”編譯指示,允許每個函數使用許多var語句以及允許混亂的空格。 否則,JSLint會對無關緊要的事情發瘋。 希望這可以幫助。

另外,如果您擁有Visual Studio,則可以使用其腳本調試器。 這是一篇說明方式的文章: http : //www.howtogeek.com/howto/windows-vista/how-to-debug-a-windows-vista-sidebar-gadget-with-visual-studio/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM