[英]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.