1. 程式人生 > >ajax 設定請求超時(setTimeout和clearTimeout)

ajax 設定請求超時(setTimeout和clearTimeout)

<script type=”text/javascript”>            function getXMLHttpRequest()         {              var xhr = false;              if ( window.XMLHttpRequest )              {                  xhr = new XMLHttpRequest();                  if ( xhr.overrideMimeType )                  {                      xhr.overrideMimeType(”text/xml”);                  }              }else if ( window.ActiveXObject )              {                  try{                          xhr = new ActiveXObject(”Msxml2.XMLHTTP”);                      }catch(e)                      {                          try{                                  xhr = new ActiceXObject(”Microsoft.XMLHTTP”);                              }catch(e)                              {                                  xhr = false;                              }                      }              }                 return xhr;         }             window.onload = function()          {              var _x = getXMLHttpRequest(); //獲得XMLHttpRequest物件              if ( !_x ) return false;              _x.open(”get”,
http://www.baidu.com
,true); _x.onreadystatechange = function() { if ( _x.readyState == 4 && _x.status == 200 ) { clearTimeout(clearTO); //如果準備狀態成功,並且HTTP狀態碼正確則清除setTimeout alert(”Success”); } }; var cleaeTO = setTimeout(function() /*重點,在請求釋出後開始設定setTimeout,如果請求狀態不成功也就是readyState != 4 那麼setTimeout將會在5秒後執行,並彈出資訊提示,要是請求成功,將會清除該setTimeout*/ { _x.abort(); //終止XMLHttpRequest物件 alert(”系統異常,請您重新整理頁面或稍後再試….”); },50000); _x.send(null); }; </script>