`
Everyday都不同
  • 浏览: 723471 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

关于页面定时器的错误「中止」问题

阅读更多

使用页面定时器是很常见的,我前面也探讨过。但是存在一个比较隐秘的问题,假如某次执行过程发生错误(即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函数不需要传参)

  • 大小: 7.9 KB
  • 大小: 2.3 KB
分享到:
评论

相关推荐

    关于JS定时器(setTimeout setInterval)定时不准问题1

    关于JS定时器(setTimeout setInterval)定时不准问题1 在JavaScript中,setTimeout和setInterval是两个基本的定时器函数,用于实现延迟执行或循环执行某个函数。然而,这两个函数在执行时往往和我们设置的延迟时间...

    js页面显示多个定时器

    本知识点将深入探讨JavaScript中的定时器及其在页面上显示多个定时器的实现方法。 1. **定时器类型** JavaScript提供了两种主要类型的定时器:`setTimeout` 和 `setInterval`。 - **setTimeout**:用于在指定的...

    常见定时器问题解答

    在"定时器问题.docx"文档中,可能包含了具体的定时器使用示例、错误案例及解决方案,建议阅读以获取更详细的解答。 总结,理解定时器的工作原理、选择合适的定时器类型以及妥善处理定时器带来的问题,都是IT专业...

    Javascript完成html页面定时器设定

    Javascript完成html页面定时器设定

    js 封装定时器解决多次调用定时器叠加问题及定时器无法清除的问题

    然而,如果不妥善管理,定时器可能会引发一些问题,比如多次调用定时器导致叠加,以及定时器无法清除。本文将详细讨论这些问题,并提供一个基于`js class`的解决方案。 首先,让我们理解为什么会出现定时器叠加问题...

    单片机多定时器软件,解决单片机内定时器不够用问题

    单片机多定时器软件设计是为了解决在51单片机中普遍存在的硬件定时器资源不足的问题。51单片机作为一种经典的微控制器,其内部通常配备有2到3个定时器,如Timer0、Timer1和Timer2。然而,在实际应用中,我们可能需要...

    定时器重入问题解决

    Timer方法重入是指使用多线程计时器,一个Timer处理还...本代码中包含重入问题的产生及重入问题的四种解决方案(1、使用lock(Object) 2、设置一个标志 3、使用Interlocked.Exchange()方法 4、定时器的AutoReset属性)

    C#中定时器停止问题

    在标题中提到的问题是关于如何正确停止定时器。虽然看似简单,但如果不正确地停止,定时器可能仍然继续触发事件。对于 `System.Timers.Timer`,停止定时器的方法是调用 `Stop` 方法,这将取消定时器的下次触发。对于...

    单片机课件——关于定时器

    关于定时器中断的课件,关于定时器的一些代码 和定时器的一些知识

    辅助软件 定时器计算器 辅助软件 定时器计算器

    辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 定时器计算器辅助软件 ...

    西门子定时器的问题

    在上述讨论中,用户遇到的问题是如何在定时器运行过程中通过触摸屏动态修改定时器的时间设定值。根据讨论内容,我们可以得出以下关键知识点: 1. **定时器设定值的地址**: 定时器的设定值通常存储在一个特定的...

    51单片机关于555定时器的C语言实现

    555定时器是一个经典的模拟集成电路,它具有多种工作模式,包括定时器、振荡器和比较器,常用于产生脉冲、触发信号、定时等任务。在51单片机中,我们可以通过C语言来控制555定时器,这大大增加了程序设计的灵活性和...

    fzTThreadTimer_delphi定时器_delphi_线程定时器_

    6. **错误处理**:在线程定时器的实现中,应考虑异常处理,确保即使在发生错误时也能正确地清理资源和通知用户。 7. **性能影响**:创建和管理线程有一定的开销,因此应当谨慎使用线程定时器,避免过度使用导致系统...

    51定时器计算工具

    通过这个工具,开发者可以高效地进行51单片机的定时器配置,避免手动计算可能导致的错误,提高编程效率和项目的可靠性。无论是在教学环境中还是实际开发项目中,51定时器计算工具都是一个十分实用的辅助工具。 在...

    MFC定时器的使用 MFC定时器的使用

    在Windows编程环境中,MFC(Microsoft Foundation Classes)库提供了一种方便的方式来实现应用程序中的定时功能,这就是MFC定时器。MFC定时器主要用于在特定时间间隔后触发一个事件,这在许多应用场景中都非常有用,...

    STM32 定时器级联

    STM32定时器级联是STM32微控制器中一种高效利用硬件资源、扩展定时功能的方法。在STM32系列芯片中,定时器可以被配置为级联模式,以实现更复杂的定时或计数任务,比如产生精确的PWM输出、高分辨率的计数等。下面我们...

    多定时器复用一个硬件定时器

    然而,这也带来了挑战,如增加软件复杂性,处理中断服务的效率,以及正确维护定时器状态的同步等问题。 在实际应用中,开发者需要根据系统需求和资源限制选择合适的方法。例如,在RTOS中,某些系统可能会提供内置的...

    【STM32】HAL库-使用一个定时器使能另一个定时器-主定时器触发模式demo

    如果先初始化从模式定时器3,定时器3工作在触发模式下,TRGI信号来源为定时器2的TRGO,而定时器2还未初始化,故TRGO信号来源默认是UG位,故在定时器2初始化过程中会置位UG位,从而触发定时器3的从模式触发模式,导致...

    ACE完整牛逼定时器

    **ACE完整牛逼定时器详解** ACE(Adaptive Communication Environment)是一个开源的、跨平台的C++库,专为分布式实时系统设计,提供了一系列高级网络编程接口和工具。在这个“ACE完整牛逼定时器”中,我们将深入...

Global site tag (gtag.js) - Google Analytics