定时器的作用

一、简介。

在很多时候,我们设计网页时,为了某种表现形式,会使用到定时器这一功能,如:为了保证用户有仔细阅读我们的用户条款,我们会给确认按钮设置只有条款被打开,并超过5秒才允许点击。

二、普通定时器

JS的程序的执行速度是非常非常快的,如果希望一段程序,可以每间隔一段时间执行一次,可以使用定时调用。

setInterval()

  - 定时调用

  - 可以将一个函数,每隔一段时间执行一次

    - 参数:

   1.回调函数,该函数会每隔一段时间被调用一次

   2.每次调用间隔的时间,单位是毫秒 

然后使用浏览器打开就会呈现出这样的效果:

每隔1秒,就重新执行一次代码,并改变数字。

当然,也有方法可以在代码执行一定次数后,将代码暂停。

clearInterval()

可以用来关闭一个定时器

   方法中需要一个定时器的标识作为参数,这样将关闭标识对应的定时器

如:

 

在很多网页设计中,这个方法都很实用,用于广告的无限循环、视频的循环播放、滚动条的无限滚动等,都是每隔一段时间就重新执行一次代码,通过样式的相似性,让他人无法发现代码已经重复运行了。

三、延时定时器

延时定时器的本质是延时调用。

延时调用一个函数不马上执行,而是隔一段时间以后在执行。

延时调用和定时调用的区别,定时调用会执行多次,而延时调用只会执行一次。

        开头我们说过的用户条款,使用的就是延时定时器,而我们浏览一些网页时,碰到某块区域,不断的有图案亮起,最终整个图案都显示出来的效果,就是灵活运用了延时定时器,延时调用和定时调用实际上是可以互相代替的,在开发中可以根据自己需要去选择。

定时器到这里就讲完了,希望能对你有所帮助!

### JMeter 定时器作用域及使用方法 #### 作用域规则 在JMeter中,定时器作用范围取决于其放置的位置。当定时器位于特定取样器之下时,仅对该取样器生效[^4]。而如果定时器被置于线程组或其他容器组件内部但未直接关联到任何具体的取样请求,则会对该层次结构下的所有取样器产生影响。 对于同一级别内的多个定时器而言,在执行流程里会先完成全部设定好的等待间隔之后再继续后续的操作过程。值得注意的是,前置处理器、后置处理器以及断言等功能模块只有在其所属范围内存在至少一个有效的取样器实例才会触发工作逻辑[^2]。 #### 正确的应用方式 为了确保定时器能够按照预期发挥作用,应当遵循如下原则: - 将通用型的全局延迟设置放在较高层级处(比如线程组层面),这样可以简化配置并保持良好的可读性和维护性; - 需要针对单个HTTP请求或者其他形式的数据交互实施精确控制的时候,则应该把相应的定时机制紧挨着目标节点创建出来; - 若希望某些特殊处理只应用于部分而非所有的子项上,可以通过构建额外的控制器来限定适用边界。 #### 示例代码展示 下面给出一段简单的Groovy脚本作为JSR223 Timer的例子,用于动态调整每次迭代之间的休眠周期长度: ```groovy // 获取当前时间戳 long startTime = System.currentTimeMillis(); // 计算两次调用间的差值,并据此决定暂停多久 def elapsed = vars.get('elapsedTime'); if (elapsed != null && !elapsed.isEmpty()) { long lastCallDuration = Long.parseLong(elapsed); log.info("Last call duration was ${lastCallDuration} ms"); // 设置最小间隙为500毫秒加上前次耗时时长的一半 int minPause = Math.max(500, (int)(lastCallDuration / 2)); Thread.sleep(minPause); } vars.put('elapsedTime', ""+(System.currentTimeMillis() - startTime)); ``` 此段程序会在每一次循环开始之前检查变量`elapsedTime`是否存在及其具体数值是多少,进而依据既定算法得出合理的停留时段[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值