最近一直在重复发明轮子,又碰到了一个需要用到类似sleep函数的函数,可javascript中并没有提供函数暂停执行Nms的方法,只能自己利用setInterval实现一个类似的功能。
js 代码
- delay = function(fn,parm,scope,config){
- var start = new Date();
- var zero_interval = null;
- var config = config || [];
-
- var h = function(){
- if(new Date()-start >=parm){
- clearInterval(zero_interval);
- fn.apply(scope,config);
- }
- }
-
- zero_interval = setInterval(h,parm);
- }
参数说明如下,fn是延时之后待执行的函数,parm是延时的时间(最后的延时时间会在此基础上增加10-15ms),scope是fn函数的作用范围,config是fn函数的参数。
用法如下:
js 代码
- var startT;
- function delayShow(){
- startT = new Date();
- delay(show,20);
- }
-
- function show(){
- alert(new Date() - startT);
- }
这里得到的提示是31ms的样子,不过在我自己的代码中只是需要延时一下,而不需要严格控制时间的长短。所以这个时间也就没必要细究了。
我自己程序中的代码如下:
js 代码
- ZERO.delay = function(fn,parm,scope,config){
- var start = new Date();
- var zero_interval = null;
- var config = config || [];
- var scope = scope || window;
-
- var h = function(){
- if(new Date()-start >=parm){
- clearInterval(zero_interval);
- fn.apply(scope,config);
- }
- }
-
- zero_interval = setInterval(h,parm);
- }
-
-
- ZMenu.prototype.onMouseOver = function(){
- this.addClass("mouseoverstyle");
- this.hiddenMenu = false;
- if(this.hasChild){
- this.click();
- }
- }
-
- ZMenu.prototype.onMouseOut = function(){
-
- if(this.hasChild){
- ZERO.delay(this.hideChildMenu,20,this);
- this.hiddenMenu = true;
- }
- else{
- this.hiddenMenu = true;
- this.hideChildMenu();
- }
- }
分享到:
相关推荐
延时执行跳转或执行函数 url可以为地址或者定义好的javascript/jquery函数, 定义每次延时时间和延时次数, callback是每次延时可以执行的回调函数
"javascript延时重复执行函数 lLoopRun.js" JavaScript 延时重复执行函数 lLoopRun.js ...lLoopRun 函数是一个非常有用的 JavaScript 函数库,可以帮助开发者快速实现各种 JavaScript 开发场景中的延时重复执行功能。
如果你在一个应用里面常常要“延时执行某某函数”,那末基于DRY的原则,可以针对Function全局对象进行扩展,为函数增加一个延时方法如delay,这样会让你的代码更简洁有效。 扩站Function对象增加delay方法如下: 代码...
setTimeout,javascript 延时执行函数,闭包处理 利用javascript闭包处理延时操作
本文实例讲述了javascript 使用sleep函数的常见方法。分享给大家供大家参考,具体如下: 一.什么是sleep函数? 花一点时间来聊一下sleep函数,首先什么是sleep函数? sleep是一种函数,他的作用是使程序暂停指定的...
延迟执行,其实就是用到了setTimeout这个函数。善于利用这个函数,可以减少很多ajax的请求,以及dom操作。
Calculate1.java 计算浮点数运算结果并调用页面中JavaScript函数的Applet。 Calculate1.class Calculate1.java的字节码文件。 第16章(\c16) 示例描述:介绍JavaScript访问本地文件的各种方法。 16.1....
Javascript的setTimeOut和setInterval函数应用非常广泛,它们都用来处理延时和定时任务,比如打开网页一段时间后弹出一个登录框,页面每隔一段时间发送异步请求获取最新数据等等。但它们的应用是有区别的。 ...
如果想实现页面的一些函数的定时执行,需要用到下面的函数大家可以看下用法。
// 延时1s执行// 或写成如果需要执行的函数没有参数,可以采用上例的第一种写法,如果需要带参数的话,就需要采用上例的第二种写法,但是采用上例的第二种写法需要
本文中,收集了一些比较常用的Javascript函数,希望对学习JS的朋友们有所帮助。 22. 替换元素 $(document).ready(function() { $('#id').replaceWith(' <DIV>I have been replaced '); }); 23. jQuery延时加载...
传统的JavaScript方法实现Ajax功能 load()方法实现Ajax功能 getJSON函数获取数据 getScript函数获取数据 get实现异步获取xml文档数据 $.get发送请求 $.post发送请求 serialize()序列化表单 $.ajax()方法发送...
JS里设定延时: 使用SetInterval和... clearTimeout(对象) 清除已设置的setTimeout对象 clearInterval(对象) 清除已设置的setInterval对象 使用定时器实现JavaScript的延期执行或重复执行 window对象提供了两个方法来
使用JavaScript可以实现代码的延时执行,也就是说当一个函数被调用时不立即执行某些代码,而是等一段指定的时间后再执行,这就叫做计时事件。
用setInterval方法可以以指定的间隔实现循环调用函数,直到clearInterval方法取消循环 用clearInterval方法取消循环时,必须将setInterval方法的调用赋值给一个变量,然后clearInterval方法引用该变量。 代码如下:...
如果你熟悉客户端JavaScript编程,你可能使用过setTimeout和setInterval函数,这两个函数允许延时一段时间再运行函数。比如下面的代码, 一旦被加载到Web页面,1秒后会在页面文档后追加“Hello there”: 代码如下:...
sleep函数延时函数:等待一段时间,再继续进行async function output() {let out = await sleep(1000);参考实