应该说不是服务器没反应,而是有时候会非常的慢,当页面请求超过一定时间服务器还没返回信息的话,浏览器就不做任何跳转了,请求也自动停止了,当前页面就好像没做过任何事情一样,这样用户根本就不知道出现的是什么问题,现在就是要当这种情况发生后,跳转到一个提示页面,告诉用户发生了什么事情
setTimeout(test,5000);
这个是在5000毫秒后,如果服务器没有响应的话就会执行setTimeout
setTimeout()在js类中的使用方法
setTimeout (表达式,延时时间)
setTimeout(表达式,交互时间)
延时时间/交互时间是以豪秒为单位的(1000ms=1s)
setTimeout 在执行时,是在载入后延迟指定时间后,去执行一次表达式,仅执行一次
setTimeout 在执行时,它从载入后,每隔指定的时间就执行一次表达式
1,基本用法:
执行一段代码:
var i=0;
setTimeout("i+=1;alert(i)",1000);
执行一个函数:
var i=0;
setTimeout(function(){i+=1;alert(i);},1000);
//注意比较上面的两种方法的不同。
下面再来一个执行函数的:
var i=0;
function test(){
i+=1;
alert(i);
}
setTimeout("test()",1000);
也可以这样:
setTimeout(test,1000);
总结:
setTimeout的原型是这样的:
iTimerID = window.setTimeout(vCode, iMilliSeconds [, sLanguage])
setTimeout有两种形式
setTimeout(code,interval)
setTimeout(func,interval,args)
其中code是一个字符串
func是一个函数.
注意"函数"的意义,是一个表达式,而不是一个语句.
比如你想周期性执行一个函数
function a(){
//...
}
可写为
setTimeout("a()",1000)
或
setTimeout(a,1000)
这里注意第二种形式中,是a,不要写成a(),切记!!!
展开来说,不管你这里写的是什么,如果是一个变量,一定是一个指向某函数的变量;如果是个函数,那它的返回值就 要是个函数
2,用setTimeout实现setInterval的功能
思路很简单,就是在一个函数中调用不停执行自己,有点像递归
var i=0;
function xilou(){
i+=1;
if(i>10){alert(i);return;}
setTimeout("xilou()",1000);
//用这个也可以
//setTimeout(xilou,1000);
}
3,在类中使用setTimeout
终于到正题了,其实在类中使用大家遇到的问题都是关于this的,只要解决了这个this的问题就万事无忧了。
呵呵。让我们来分析一下:
function xilou(){
this.name="xilou";
this.sex="男";
this.num=0;
}
xilou.prototype.count=function(){
this.num+=1;
alert(this.num);
if(this.num>10){return;}
//下面用四种方法测试,一个一个轮流测试。
setTimeout("this.count()",1000);//A:当下面的x.count()调用时会发生错误:对象不支持此属性或方法。
setTimeout("count()",1000);//B:错误显示:缺少对象
setTimeout(count,1000);//C:错误显示:'count'未定义
//下面是第四种
var self=this;
setTimeout(function(){self.count();},1000);//D:正确
}
var x=new xilou();
x.count();
错误分析:
A:中的this其实指是window对象,并不是指当前实例对象
B:和C:中的count()和count其实指的是单独的一个名为count()的函数,但也可以是window.count(),因为window.count()可以省略为count()
D:将变量self指向当前实例对象,这样js解析引擎就不会混肴this指的是谁了。
话说回来,虽然我们知道setTimeout("this.count()",1000)中的this指的是window对象,但还是不明白为什么会是
window对象^_^(有点头晕...)
那我们可以想象一下这个setTimeout是怎样被定义的:
setTimeout是window的一个方法,全称是这样的:window.setTimeout()
那应该是这样被定义的:
window.setTimeout=function(vCode, iMilliSeconds [, sLanguage]){
//.....代码
return timer//返回一个标记符
}
所以当向setTimeout()传入this的时候,当然指的是它所属的当前对象window了。
分享到:
相关推荐
代码执行过程中,开发者最初选择了使用同步请求(async设置为false),结果导致点击按钮后,按钮的文案并没有按照预期更改,同时浏览器界面在一段时间内没有任何响应。 这个问题的根源在于浏览器的渲染UI线程和...
在上述代码中,我们首先使用setTimeout函数实现延时调用,这样可以在发起请求之前等待一段预设的时间。如果checkLoading函数在没有设置延时参数的情况下被调用,那么默认等待1秒钟。 除了设置超时时间以外,我们还...
2. `setTimeout`:这是一个JavaScript内置函数,它可以在指定的毫秒数之后执行一个函数或一段代码。在上述代码中,`setTimeout`被用来实现定时执行`publicBusi`和`personBusi`。定时时间通过指定毫秒数来计算,例如...
在IT行业中,C#、JavaScript(JS)和Ajax(异步JavaScript和XML)是构建现代Web应用程序的关键技术。Ajax允许创建动态、响应迅速的用户界面,而无需每次交互都重新加载整个页面。以下是对这些技术及其在实际应用中的...
- 初始化定时器:设置一个定时器,每隔一段时间(如5秒)调用一个函数。 - 发送AJAX请求:函数内部构建并发送一个AJAX请求到服务器。 - 处理响应:服务器响应后,回调函数处理返回的数据,更新网页内容。 - 重复执行...
这段代码会在页面加载完成后立即发送一个GET请求到指定的后台接口,获取系统时间。如果请求成功,它会更新页面上的时间显示,并设置定时器每秒再次调用`fetchServerTime`。 3. **后台处理**:在服务器端,我们需要...
4. **实现实时更新**:为了实现股票数据的实时更新,可以使用`setInterval()`函数每隔一段时间自动发送AJAX请求。但这种方法可能导致不必要的请求,所以更推荐使用`setTimeout()`配合`clearTimeout()`来实现更智能的...
当页面加载后,设置一个定时器,每隔一段时间就发送Ajax请求,获取服务器的最新数据,然后动态更新页面元素。 3. **JSON数据格式**:尽管Ajax的名称中包含XML,但现在更多的情况是使用JSON(JavaScript Object ...
- `setInterval`则用于每隔指定的毫秒数重复执行同一段代码。其用法为`setInterval(function, milliseconds)`。 在执行setTimeout或setInterval时,主线程会将回调函数放入事件队列中,等待其他任务完成后执行。当...
当用户停止键入一段时间(如300毫秒)后,我们再发送Ajax请求,以避免频繁请求。可以使用`setTimeout`和`clearTimeout`实现这一功能。 - **Ajax请求**:使用JavaScript的`XMLHttpRequest`对象或更现代的`fetch` API...
每隔一段时间,前端通过Ajax发送请求到后台,后台接收到请求后处理并返回新数据。前端接收到新数据后,利用JavaScript更新页面的相应部分,达到“无动作”更新的效果。 例如,可以创建一个定时函数,每隔几秒钟自动...
可以设置重试机制,当请求失败时,等待一段时间后重新尝试。例如: ```javascript function sendAjaxRequest() { $.ajax({ // ... 配置项 }) .done(function(data) { // 处理数据 }) .fail(function(jqXHR, ...
我们设置了一个定时器`setTimeout()`,在8秒后检查`xmlHttp`对象是否完成了请求,如果没有完成(即`readyState`不为4),则通过`abort()`方法终止请求。 需要注意的是,在终止请求后,如果需要重新发起请求,则应该...
在本例中,展示了如何使用JavaScript的setTimeout函数实现每5秒钟发送一次AJAX请求,从而定时更新数据。 首先,我们看到代码中有函数sendHTTPRequest,它用于初始化XMLHttpRequest对象,并发送POST请求到指定的URL...
7. **优化用户体验**:为了防止频繁请求,可以设置延时触发,例如使用`setTimeout`和`clearTimeout`组合,确保用户停止输入一段时间后再发送请求。 在"AjaxTest"这个文件中,可能包含了实现上述功能的JavaScript...
Ajax 局部刷新的基本原理是通过 JavaScript 发送 XMLHttpRequest 请求到服务器,服务器处理请求后返回数据,然后客户端根据这些数据更新页面的相应部分。 #### 三、定时刷新功能实现 定时刷新是指按照预设的时间...
用法一个定时器,先延时该函数的执行,比如用法setTomeout()这个函数延迟一段时间后执行函数,假如在该时间段内还触发了其他事件,我们可以用法清除方法clearTimeout()来清除该定时器,再setTimeout()一个新的定时器...
在keyup事件处理函数中,可以先使用clearTimeout取消之前的定时器,然后使用setTimeout重新设置一个新的定时器,这样可以保证只有在用户停止输入一段时间后才执行Ajax请求。 4. Ajax请求的取消:有时候可能需要在...