ajax 設定請求超時(setTimeout和clearTimeout)
阿新 • • 發佈:2019-02-15
<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>