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

源地址在此:

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

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

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

setInterval(func, delay)

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

setTimeout(func, delay)

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

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

<div id="timeDiv" ></div>
<script type="text/javascript">
function getCurrentDateTime() {
document.getElementById("timeDiv").innerHTML = new Date();
} getCurrentDateTime();
</script>

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

<div id="timeDiv" ></div>
<script type="text/javascript">
setInterval(getCurrentDateTime, 1000); function getCurrentDateTime() {
document.getElementById("timeDiv").innerHTML = new Date();
}
</script>
clearInterval(intervalID)

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

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

<div id="timeDiv" ></div>
<br />
<input type="button" value="Start Clock" onclick="startClock()" />
<input type="button" value="Stop Clock" onclick="stopClock()" />
<script type="text/javascript">
var intervalId; function startClock() {
intervalId = setInterval(getCurrentDateTime, 1000);
} function stopClock() {
clearInterval(intervalId);
} function getCurrentDateTime() {
document.getElementById("timeDiv").innerHTML = new Date();
} getCurrentDateTime();
</script>

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

<input type="text" value="10" id="txtBox" />
<br /><br />
<input type="button" value="Start Timer" onclick="startTimer('txtBox')" />
<input type="button" value="Stop Timer" onclick="stopTimer()" />
<script type="text/javascript">
var intervalId; function startTimer(controlId)
{
var control = document.getElementById(controlId);
var seconds = control.value;
seconds = seconds - 1;
if (seconds == 0)
{
control.value = "Done";
return;
}
else
{
control.value = seconds;
} intervalId = setTimeout(function () { startTimer('txtBox'); }, 1000);
} function stopTimer()
{
clearTimeout(intervalId);
}
</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. Balanced Lineup(线段树的简单了解)

    个人心得:线段树就是将一段序列拆分为一个个单独的节点,不过每俩个节点又可以联系在一起,所以就能很好的结合,比如这一题, 每次插入的时候都将这一段区间的最大最小值更新,就能大大减少时间. 这个线段树建立 ...

  2. BZOJ5336: [TJOI2018]party

    BZOJ5336: [TJOI2018]party https://lydsy.com/JudgeOnline/problem.php?id=5336 分析: 好题. 正常的思路是设\(f[i][j] ...

  3. LeetCode Longest Harmonious Subsequence

    原题链接在这里:https://leetcode.com/problems/longest-harmonious-subsequence/description/ 题目: We define a ha ...

  4. poj1463 Strategic game[树形DP]

    求一棵树每条边都被选上的点覆盖掉的最少选点数. 一条边被覆盖掉,必须他父亲和儿子中选一个..这不就是比NOIP2018D2T3还裸的暴力么.水掉. lyd给的练习题都什么**玩意儿.. code不挂了 ...

  5. loj 6084.「美团 CodeM 资格赛」跳格子

    题目: link 题解: 尽量走\(a\). 只要保证走\(a\)后到达的点一定可以到终点就可以走. 所以从终点开始\(dfs\)出所有能够到达终点的点. 然后再从起点开始\(dfs\)路径即可. 如 ...

  6. Eureka详解

    该章节紧接第三章,主要是对一些理论上的指导,帮助更好的理解服务治理. 基础架构 eureka服务治理的基础架构包含三个要素: 1)服务注册中心:eureka提供服务端,提供服务的注册与发现功能. 注: ...

  7. MongoDB数据库的备份和恢复

    MongoDB数据库备份方式: 1.整库备份 2.单表备份 1.整库备份 备份整个数据库: mongodump -h 127.0.0.1:27000 -d park --authenticationD ...

  8. Python 函数之lambda、map、filter和reduce

    1.lambda函数 lambda()是Python里的匿名函数,其语法如下: lambda [arg1[, arg2, ... argN]]: expression 学习条件运算时,对于简单的 if ...

  9. echo 的部分用法

    echo “内容” > 文件名 (会覆盖文件里的所有内容) echo “内容” >> 文件名 (追加内容到文件里,会另起一行写入) 如果您阅读过此文章有所收获,请为我顶一个,如果文章 ...

  10. bash的使用

    转自:http://blog.csdn.net/y2888886/article/details/50535033 在上篇博文的基础上做如下修改 注意一些常见命令中间就要加 “ ” ,否则很多命令无法 ...