1. 程式人生 > >如何終止ajax請求?資料處理太慢,我不想載入了,要求中斷重新開始?使用jQuery或者原生JavaScript進行處理?

如何終止ajax請求?資料處理太慢,我不想載入了,要求中斷重新開始?使用jQuery或者原生JavaScript進行處理?

一:請求次數多的情況下我們可愛能會遇到;

二:非同步執行沒有返回具體引數,或者說後臺顯示返回success,前臺顯示空白;

三:網路載入失敗;

以上情況我們需要配合使用者體驗,我們可以在終止迴圈提示使用者網路狀態載入異常,重新載入;

1、採用jQuery的ajax方式:

<script src = "jQuery.js"></script>
<body>
<button id="song">點選結束載入資料,重新開始載入</button>
</body>
<script>
var xhr = $.ajax({
type:'POST',
  url:'test.json',
  data:'',
  success:function(){
    confirm('執行成功')
  }
})
alert(xhr);//執行資料顯示彈窗
</script>

<script>
$(function(){
  $("#song").click(function(){
    alert('click');
    xhr.abort();
  })
})
</script>

2、原生JavaScript;根據響應狀態改變關閉

xmlHttp.open("POST","Url",true);
xmlHttp.onreadystatechange=function(){
  ...//得到響應之後的操作
}
xmlHttp.send();
//設定3秒鐘後檢查xmlHttp物件所傳送的資料是否得到響應.
setTimeout("CheckRequest()","3000");
function CheckRequest(){
  //為4時代表請求完成了  
  if(xmlHttp.readyState!=4){
    alert('資料響應超時');
    //關閉請求
    xmlHttp.close();
  }
}

ok,問題結束;