同步就是阻塞了 什么都不跑 怎么跑取消指令啊?
-------------------------<script>
setTimeout(function(){
xmlhttprequest.abort();
}, 2000);while(true) {
xmlhttprequest = ajax同步请求;
}
</script>
-------------------------<script>
setTimeout(function(){
xmlhttprequest.abort();
}, 2000);while(true) {
xmlhttprequest = ajax同步请求;
}
</script>
//你这里如果没有break语句就死循环了,即使你用settimeout终止了xmlhttprequest的同步请求也跳不出这个循环
xmlhttprequest = ajax同步请求;
}
我上面给出的只是部分代码说明, 关键问题是如何中止同步请求,abort怎么实现? var flag = true;
var xmlhttpRequest; setTimeout(function(){
flag = false;
if (xmlhttpRequest && xmlhttpRequest.abort) {
xmlhttpRequest.abort();
}
}, time); while(flag) {
xmlhttpRequest = $.ajax({
url: "http://www.google.com",
async: false,
cache: false
});
};
不知道你想干什么了....
不知道你想干什么了....
------------我们知道用XMLHttpRequest.abort()可以中断ajax的异步请求,但是如何中断ajax的同步请求呢?
刚才试了下,setTimeout执行不了
結束這個 時間 可以達到效果不?
方法2:循环访问一个不存在的网址.------缺点:耗用百分之三四十的cpu,(不是百分百)方法2代码:
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JK:支持民族工业,尽量少买X货</title><script language=javascript>function sleep(num) //JK
{
var tempDate=new Date();
var tempStr="";
var theXmlHttp = new ActiveXObject( "Microsoft.XMLHTTP" );
var goneMsel=0;
while(goneMsel<num )
{
goneMsel=new Date()-tempDate;
tempStr+="\n"+goneMsel;
var url="about:blank?JK="+Math.random();
if(num-goneMsel>1000) url="http://d:";
try{
theXmlHttp .open( "get",url , false );
theXmlHttp .send();
}
catch(e){;}
}
containerDiv.innerText=tempStr;
return;
}
</script>
</head><body>
js不耗(耗得比较少)cpu的
sleep(ms):<input value=10000 name=aaa > ,<input type=button value="alert(0);sleep(..);alert(1);" onclick="alert(0);sleep(document.all.aaa.value);alert(1);"> <div id=containerDiv>
</div>
</body></html>