使用页面定时器是很常见的,我前面也探讨过。但是存在一个比较隐秘的问题,假如某次执行过程发生错误(即js执行报错),那么会不会影响下次的继续执行呢?
下面我们通过一个小例子来说明探索:
通过setInterval
<script> $(function() { //test(); setInterval('test()', 1000); }); function test() { var test = null; console.log('aaaaaaaaa'); console.log(test.size);//模拟执行错误 }; </script>
打开浏览器控制台,你会发现:
虽然每次执行错误,但是它还是会去定时执行。
通过setTimeout回调本身:
$(function() { test(); }); function test() { var test = null; console.log('aaaaaaaaa'); console.log(test.size); setTimeout("test()", 1000); };
你会发现控制台只执行了一次:
就不再执行了。
以上小例子是很有用的,项目中很可能因为你程序不够严谨的原因,偶然一次Js执行报错,假如你是通过setTimeout来实现定时器的话,很有可能这次偶然执行报错,会影响下一次的执行(卡在当前这一次)。所以最好使用setInterval来做定时器哦。
注意,定时器的第一个参数(js函数名必须加上括号哦,即使这个js函数不需要传参)
相关推荐
Javascript完成html页面定时器设定
关于JS定时器(setTimeout setInterval)定时不准问题1
js页面显示多个定时器;及用法都在文档之中。
本文主要对西门子plc定时器中断常见问题解答进行了汇总,一起来学习一下
Timer方法重入是指使用多线程计时器,一个Timer处理还...本代码中包含重入问题的产生及重入问题的四种解决方案(1、使用lock(Object) 2、设置一个标志 3、使用Interlocked.Exchange()方法 4、定时器的AutoReset属性)
js 封装定时器解决多次调用定时器叠加问题及定时器无法清除的问题
各种定时器常见问题解答,希望对你有帮助!!!
一般单片机内的 定时器只有三个,当我们做工程时往往需要很多定时器,就会遇到定时器不够用的问题,这个程序是用软件做出的很多定时器,解决了定时器不够用的问题。适当修改可以各种控制的需求。
关于定时器中断的课件,关于定时器的一些代码 和定时器的一些知识
spring定时器spring定时器spring定时器spring定时器spring定时器
C#中定时器停止问题,停止定时器必须要用Stop方法才行,不然依然会工作的。
实现定时,有软件、数字电路和可编程定时器3种主要方法。可编程定时计数器是为方便微型计算机系统的设计和应用而研制的,它是硬件定时,又能很容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种...
555定时器 555定时器 555定时器 555定时器
辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...
单片机中断 定时器 欢迎大家的使用 中断系统是一个很重要的概念
此文档描述了关于西门子定时器的应用 可以在日常的应用当中走很多洁净
如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...
555定时器是一种用途广泛的模拟数字混合集成电路。它可以构成单稳态触发器、多谐振荡器、压控振荡器等多种应用电路。
VC++ 定时器使用 定时器使用 VC++ 定时器使用 定时器使用
555集成定时器 555集成定时器 555集成定时器