下面這段代碼,在服務器出錯,或者網絡中斷等原因下,引造成錯誤:
//更新最后一期开奖信息
function updateLast() {
clearTimeout(L1);
var url ="?action=xml&operate=last&a=";
$.getJSON(url,function(msg,status){
if (msg == "-99") {
alert(S4[0]);
top.location.href = "?action=logout&sid=" + SID;
return;
}
L1 = setTimeout('updateLast();',5000);
if(typeof(msg[0])!='undefined'){
//$('#UserResult').html("¥"+msg[0]+"");
$('#UserResult').html(""+msg[0]+"");
UP_LIDtext = ($('#UP_LID').text());
UP_GAMEIDtext = ($('#UP_GAMEID').text());
if(UP_LIDtext!=msg[1][0] && UP_GAMEIDtext==msg[3]){//新的开奖[彩类相同,但]
//console.log("新的开奖:"+UP_LIDtext+" msg[1][0]:"+msg[1][0]);
top.topFrame.PlaySound('sound_03');
update_betcount();
setTimeout("top.leftFrame.location.href=\"?action=account\";",5000);
}
$('#UP_LID').text(msg[1][0]);
$('#UP_GAMEID').text(msg[3]);
if($('#classid').val() && $('#classid').val() != msg[3]){
top.topFrame.SelectType(msg[3]-0);
return ;
}
if(top._class_type != msg[3]){
top.topFrame.SelectType(msg[3]-0);
return ;
}
for(var i in msg[1][1]){//color
switch(msg[1][1][i]){
case 'R':cclass='ballred';break;
case 'G':cclass='ballgreen';break;
case 'B':cclass='ballblue';break;
default:cclass='';
}
var n = '<span>'+(msg[1][2][i]!==null&&typeof(msg[1][2][i])!='undefined'?msg[1][2][i]:"-")+'</span>';
$('#BaLL_n'+(i-0+1)).html(n);
}
if(top.g_timestap<=0 && msg[2]==true){//刚开盘
// console.log("刚开盘,播放声音");
//top.topFrame.PlaySound();
setTimeout("update_betcount();",1000);
setTimeout("window.location = window.location;",1000);
setTimeout("top.leftFrame.location.href=\"?action=account&sid=\";",5000);
top.g_status = msg[2];
}
}
});
}
修改後,可以在出現錯誤後,繼續運行:
function updateLast(c) {
clearTimeout(L1);
$.ajax({
url: "?action=xml&operate=last&c="+c,
type: 'GET',
dataType: 'json',
timeout: 3000,
error: function(){
L1 = setTimeout('updateLast('+((c>0?0:c)-1)+');',5000);
//alert('Error loading JSON document');
},
success: function(msg,status){
if(status=='success'){
if (msg == "-99") {
alert(S4[0]);
top.location.href = "?action=logout&sid=" + SID;
return;
}
L1 = setTimeout('updateLast('+((c<0?0:c)+1)+');',5000);
if(typeof(msg[0])!='undefined'){
//$('#UserResult').html("¥"+msg[0]+"");
$('#UserResult').html(""+msg[0]+"");
UP_LIDtext = ($('#UP_LID').text());
UP_GAMEIDtext = ($('#UP_GAMEID').text());
if(UP_LIDtext!=msg[1][0] && UP_GAMEIDtext==msg[3]){//新的开奖[彩类相同,但]
//console.log("新的开奖:"+UP_LIDtext+" msg[1][0]:"+msg[1][0]);
top.topFrame.PlaySound('sound_03');
update_betcount();
setTimeout("top.leftFrame.location.href=\"?action=account\";",5000);
}
$('#UP_LID').text(msg[1][0]);
$('#UP_GAMEID').text(msg[3]);
if($('#classid').val() && $('#classid').val() != msg[3]){
top.topFrame.SelectType(msg[3]-0);
return ;
}
if(top._class_type != msg[3]){
top.topFrame.SelectType(msg[3]-0);
return ;
}
for(var i in msg[1][1]){//color
switch(msg[1][1][i]){
case 'R':cclass='ballred';break;
case 'G':cclass='ballgreen';break;
case 'B':cclass='ballblue';break;
default:cclass='';
}
var n = '<span class="'+cclass+'">'+(msg[1][2][i]!==null&&typeof(msg[1][2][i])!='undefined'?msg[1][2][i]:"-")+'</span>';
$('#BaLL_n'+(i-0+1)).html(n);
}
if(top.g_timestap<=0 && msg[2]==true){//刚开盘
// console.log("刚开盘,播放声音");
//top.topFrame.PlaySound();
setTimeout("update_betcount();",1000);
setTimeout("window.location = window.location;",1000);
setTimeout("top.leftFrame.location.href=\"?action=account&sid=\";",5000);
top.g_status = msg[2];
}
}
}else{
L1 = setTimeout('updateLast('+(c-1)+');',5000);
}
}
});
}
參考:
http://www.linuxidc.com/Linux/2012-02/53754.htm
http://www.ibm.com/developerworks/cn/xml/x-ajaxjquery.html
http://topic.csdn.net/u/20100528/12/e8013ff6-c511-4411-a575-fee3b4556149.html
声明: 本文由( admin )原创编译,转载请保留链接: 使用jQuery的$.getJSON獲取數據出錯解決辦法
------====== 本站公告 ======------
联系信息:
电话:19970108113(微信同号) QQ:3142401606
支付宝:https://me.alipay.com/lxq73061
相关插件程序等信息均会在站内发布,敬请关注。