javascript 如何实现程序休眠?

javascript 如何实现程序休眠?,第1张

1. jquery的$.delay()方法

设置一个延时来推迟执行队列中之后的项目。这个方法不能取代JS原生的setTimeout。

The .delay() method is best for delaying between queued jQuery effects. Because it is limited—it doesn't, for example, offer a way to cancel the delay—.delay() is not a replacement for JavaScript's native setTimeout function, which may be more appropriate for certain use cases.

例子:在.slideUp() 和 .fadeIn()之间延时800毫秒。

HTML 代码:

<div id="foo /凯敏碧">

jQuery 代码:

$('#foo').slideUp(300).delay(800).fadeIn(400)

2. 通过循环消耗cpu

function sleep(n) {

var start = new Date().getTime()

while(true) if(new Date().getTime()-start >n) break

}

3. 用setTimeout。

假设有三个步骤,步骤之间需要暂停一段时间;可以采用如下的方法:

function firstStep() {

//do something

setTimeout("secondStep()"盯举, 1000)

}

function secondStep() {

//do something

setTimeout("thirdStep()"拿烂, 1000)

}

function thirdStep() {

//do something

}

使用调用自定义函数的汪含迹方式消耗时间:困并老燃

function sleep(numberMillis) {

var now = new Date()

var exitTime = now.getTime() + numberMillis

while (true) {

now = new Date()

if (now.getTime() >exitTime)

return

}

}

js不能直接让运行中的js代码停在某一步等待一段时间后继续向后执行。

但可以使用setTimeout或setInterval可以让js在需要的时候启饥兆坦动一个定时器。

需要猜拆延迟运行的代码放到setTimeout或setInterval块内即可。

如下代码即实现了类似功能

上面的脚本执行后,浏览器会依次d出4个对话框,分别显示内容“现在开始运行程序脚本”,“脚本1”,“脚本2”,“脚本4”,当你点掉显示“脚本4”的对话框以后(尽量立即点掉),大约过10秒左右会d出第五个“脚本3”的对话框。

另外,虽然while、烂桐if等以时间为条件的循环,强制执行死循环可以达到阻塞程序代码运行的目的,但会极大的消耗系统资源,一般开发程序是要严格避免这种方式的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12422608.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存