Javascript getJson异常处理

Javascript getJson exception handling

本文关键字:异常处理 getJson Javascript      更新时间:2023-09-26

我有一个简单的javascript,它每400ms从Web服务器获取一些JSON数据,并用内容更新各种div——它在100%调用中的99次都能正常工作。但是,持有json的Web服务器偶尔不会响应、不可用或类似情况。如果它与页面加载同时发生,我会得到一个"无法打开流:HTTP请求失败!HTTP/1.1 404在C:''wamp''www''test''index.php中找不到",并且必须重新加载页面。如果页面是在从json服务器退出之前加载的,则div不会更新,而是在服务器再次响应后更新。

我需要找到一种方法来避免用户界面(php页面)上出现"无法打开流:HTTP请求fai…"消息,并随时用"Connection OK"或"Connection down"更新div。

我一直在研究getJSON的异常处理,但找不到正确的方法。

我的脚本:

<script src='http://code.jquery.com/jquery-latest.js'></script> 
<script type="text/javascript">
    $.ajaxSetup ({  
        cache: false  
    });  
     setInterval(function(){
        $.getJSON('http://myurl.com/test/jsonreplica.php', function(data) {
        data_loaded=data; 
        var len_data_loaded = data_loaded['Devices'].length;
        var len_data_current = data_current['Devices'].length;

// UPDATE ALL MY DIV's
}  
        });
    }, 400);
</script>

所有jQuery AJAX函数都返回一个jqXHR promise,它具有类似.done().error()的方法。所以你可以写:

$.getJSON('URL', function(data) {
    // Do stuff
}).error(function() {
    // Deal with error
});