Javascript Windows7小工具AJAX停止工作

Javascript Windows7小工具AJAX停止工作,javascript,ajax,windows,windows-desktop-gadgets,Javascript,Ajax,Windows,Windows Desktop Gadgets,我正在写一个小玩意儿,它将显示我的游戏服务器的当前状态。 它通过返回JSON的URL获取信息。一开始它工作得很好。但现在,它似乎被AJAX调用卡住了 这是我的剧本: function start() { $("body").css({ height: "100px", width: "130px", margin: 0 }); $("#refresh").click(function (event) { event.preventDefault(); f

我正在写一个小玩意儿,它将显示我的游戏服务器的当前状态。 它通过返回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控制台了

这也很有帮助。但是,我在使用时选择了以下选项: 假设窗口,容忍未使用的参数,容忍缺少的“use strict”pragma,容忍每个函数有许多var语句,容忍凌乱的空白。否则JSLint会因为无关紧要的事情而对你的脚本发疯。希望这有帮助


如果您有VisualStudio,也可以使用它的脚本调试器。这里有一篇文章解释了如何解决:

安全问题?它确实在外部运行。也许你需要(再次)向你信任的siteshell添加.nazing.url,我完全忘了我在这里发布了这个问题。不管怎样,我重写了代码,但是你的解决方案会奏效:)谢谢