本文翻译youtube上的up主kudvenkat的javascript tutorial播放单

源地址在此:

https://www.youtube.com/watch?v=PMsVM7rjupU&list=PL6n9fhu94yhUA99nOsJkKXBqokT3MBK0b

在Javascript中,一段代码可以在某个特定的时间段运行.比如,你可以每1秒进行某个Javscript函数的运行.这个概念在Javascript中被称为timing时间.

全局window对象有着以下两个方法,这两个方法允许我们来在某个特定的时间段里运行一段javascript代码

  1. setInterval(func, delay)

这个方法运行一个特定的函数,然后在特定的时间段内重复.这个方法有两个参数.func参数指定了要运行的函数名.delay参数指定了细节到毫秒的时间段,然后在这个指定时间段内等待下次运行指定函数.

  1. setTimeout(func, delay)

在等待了若干毫秒后运行一个特定函数,这个方法有2个参数.func参数是要指定运行的函数名.delay参数是在执行指定函数之前要等待的时间.具体的等待时间(delay)可能要更长.

我们来用例子理解一下timing时间.以下的代码在div标签内展示了当前时间和日期

  1. <div id="timeDiv" ></div>
  2. <script type="text/javascript">
  3. function getCurrentDateTime() {
  4. document.getElementById("timeDiv").innerHTML = new Date();
  5. }
  6.  
  7. getCurrentDateTime();
  8. </script>

此时时间是固定的.为了要让时间动态处理这个脚本,我们注意到时间必须每秒更新.在以下的例子中,我们用setInterval()方法来每1000毫秒执行getCurrentDateTime()函数

  1. <div id="timeDiv" ></div>
  2. <script type="text/javascript">
  3. setInterval(getCurrentDateTime, 1000);
  4.  
  5. function getCurrentDateTime() {
  6. document.getElementById("timeDiv").innerHTML = new Date();
  7. }
  8. </script>
  1. clearInterval(intervalID)

这个方法能取消掉用setInterval()方法设置好的反复运行的函数.IntervalID是指定要取消的动作的identifier.这个ID是由setInterval()方法所返回的.以下的例子展示了如何用clearInterval()方法.

由按钮点击动作来开始和停止时钟:在这个例子中,setInterval()方法返回一个intervalID,这个ID会被传到clearInterval()方法中.当你点击"start clock"按钮的时候,始终每秒会更新时间,当你点击"stop clock"按钮的时候,时钟停止.

  1. <div id="timeDiv" ></div>
  2. <br />
  3. <input type="button" value="Start Clock" onclick="startClock()" />
  4. <input type="button" value="Stop Clock" onclick="stopClock()" />
  5. <script type="text/javascript">
  6. var intervalId;
  7.  
  8. function startClock() {
  9. intervalId = setInterval(getCurrentDateTime, 1000);
  10. }
  11.  
  12. function stopClock() {
  13. clearInterval(intervalId);
  14. }
  15.  
  16. function getCurrentDateTime() {
  17. document.getElementById("timeDiv").innerHTML = new Date();
  18. }
  19.  
  20. getCurrentDateTime();
  21. </script>

现在我们来看看使用setTimeout()和clearTimeout()函数的使用例子.格式和用法都和setInterval和clearInterval()类似

  1. <input type="text" value="10" id="txtBox" />
  2. <br /><br />
  3. <input type="button" value="Start Timer" onclick="startTimer('txtBox')" />
  4. <input type="button" value="Stop Timer" onclick="stopTimer()" />
  5. <script type="text/javascript">
  6. var intervalId;
  7.  
  8. function startTimer(controlId)
  9. {
  10. var control = document.getElementById(controlId);
  11. var seconds = control.value;
  12. seconds = seconds - 1;
  13. if (seconds == 0)
  14. {
  15. control.value = "Done";
  16. return;
  17. }
  18. else
  19. {
  20. control.value = seconds;
  21. }
  22.  
  23. intervalId = setTimeout(function () { startTimer('txtBox'); }, 1000);
  24. }
  25.  
  26. function stopTimer()
  27. {
  28. clearTimeout(intervalId);
  29. }
  30. </script>

[译]Javascript timing事件的更多相关文章

  1. JavaScript Timing 事件及两种时钟写法

    JavaScript 可以在时间间隔内执行. 这就是所谓的定时事件( Timing Events). ------------------------------------------------- ...

  2. [译] JavaScript 的事件循环

    译者注 本译文基本是按原文的意思来翻译,但对于 JavaScript 的事件循环,个人感觉还是 Philip Roberts 的视频讲解更形象些,思路和本文大致相同,不过他把事件表理解为 Web AP ...

  3. jQuery $(document).ready()和JavaScript onload事件

    jQuery $(document).ready()和JavaScript onload事件 Why we need a right time? 对元素的操作和事件的绑定需要等待一个合适的时机,可以看 ...

  4. Javascript事件模型系列(四)我所理解的javascript自定义事件

    被我拖延了将近一个月的javascript事件模型系列终于迎来了第四篇,也是我计划中的最后一篇,说来太惭愧了,本来计划一到两个星期写完的,谁知中间遇到了很多事情,公司的个人的,搞的自己心烦意乱浮躁了一 ...

  5. javascript通用事件封装

    随着最近几年Html5的兴起,越来越多的应用采用html5进行实现,一个优秀的网页应用不但需要美观简洁的UI界面,更需要一个良好的交互.网页应用大部分的交互需要用javascript事件进行实现.虽然 ...

  6. javascript的事件

    前戏 今天在博客中看到了javascript的事件机制,就自己试试写一个简单的冒泡捕获测试,但是测试结果出乎了我的意料,主要是自己原来对事件了解不是很清楚,现在写篇博客记录下. 基础 先来看一下我在A ...

  7. javascript对象事件绑定方法

    javascript对象事件绑定方法 今天在做对象事件绑定的过程中出现了一点异外情况,由于事件方法是由参数传过来的,需要将当前对象call过去,方便方法体里直接调用this 错误写法 obj.oncl ...

  8. JavaScript的事件代理(转)

    如果你想给网页添加点JavaScript的交互性,也许你已经听过JavaScript的事件代理(event delegation),并且觉得这是那些发烧友级别的JavaScript程序员才会关心的什么 ...

  9. [转]javascript指定事件处理程序包括三种方式:

    javascript指定事件处理程序包括三种方式: (1):DOM0级事件处理程序 如: 代码如下: var btn=document.getElementById("mybtn" ...

随机推荐

  1. 每天一个linux命令(15):head命令

    版权声明更新:2017-05-19博主:LuckyAlan联系:liuwenvip163@163.com声明:吃水不忘挖井人,转载请注明出处! 1 文章介绍 本文介绍了Linux下面的mv命令. 2. ...

  2. SQL夯实基础(六):MqSql Explain

    关系型数据库中,互联网相关行业使用最多的无疑是mysql,虽然我们C# Developer很多用的都是sql server ,但是学习一些mysql方面的知识也是必要的,他山之石么. 先上一个expl ...

  3. pair对组

    一.pair基本概念 对组(pair)将一对值组合成一个值,这一对值可以具有不同的数据类型,两个值可以分别用pair的两个公有函数first和second访问. 类模板:template <cl ...

  4. markdown的学习

    开始 语法 编辑器 sublime配置 图床 体验 开始 昨天晚上加上今天上午,折腾了算是一天的markdown编辑器. 原因是,为了写博客.在博客园写的东西,想法不到简书里,结果发现有部分乱码,以及 ...

  5. 4、运行成功的Demo(PyCharm+Selenium)

    1.打开PyCharm,新建一个python.file,输入代码“from selenium import webdriver”报错的解决方法 (1)PyCharm没有找到正确的python,在“Fi ...

  6. FPGA 竞争与冒险

    一,概念 在数字电路设计时,无论是组合.时序,还是FPGA电路中,都需要考虑竞争冒险现象(Race and Competition). 竞争:由于信号在传输和处理过程中经过不同的逻辑门.触发器或逻辑单 ...

  7. PHP 实现了一种代码复用的方法,称为 trait

    自 PHP 5.4.0 起,PHP 实现了一种代码复用的方法,称为 trait. Trait 是为类似 PHP 的单继承语言而准备的一种代码复用机制.Trait 为了减少单继承语言的限制,使开发人员能 ...

  8. 获得Oracke中刚插入的ID ---> GetInsertedID()

    (1)首先 需要创建序列: CREATE SEQUENCE SE_TD_POWER MINVALUE 1 NOMAXVALUE START WITH 1 INCREMENT BY 1 NOCYCLE ...

  9. hihoCoder#1095(二分搜索)

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi and Little Ho are playing a drinking game called HI ...

  10. Python函数(九)-装饰器(二)

    如果给被装饰器装饰的函数传递参数的话,需要在装饰器里修改 # -*- coding:utf-8 -*- __author__ = "MuT6 Sch01aR" import tim ...