易截截图软件、单文件、免安装、纯绿色、仅160KB

解读javascript的计时器

说明:这篇文章节选自John Resig
的《Secrets of the JavaScript Ninja》一书,本人翻译只是供大家学习,翻译不足之处,请斧正。
这篇文章主要从下面几个方面解读计时器:
计时器概述;
计时器速度深度探析;
用计时器处理大量任务;
利用计时器管理动画;
较好的计时器测试
计时器是一个我们了解很少且经常被滥用的东西,它是javascript的特色。实际上,在复杂的应用程序开发中,它能为我们提供很多帮助。计时器
提供了一个可以将代码片段异步延时执行的能力,javascript生来是单线程的(在一定时间范围内仅一部分js代码能运行),计时器为我们提供了一种
避开这种限制的方法,从而开辟了另一条执行代码的蹊径。
有趣的是,与我们普遍接受的观点相反,计时器并不是javascript语言的一部分,而是浏览器引入的方法和对象的一部分。这意味着如果你选择在一个非浏览器的环境运行它,很有可能计时器不存在,你必须使用特定功能推行你自己的版本(如Rhino线程)。
1、计时器是如何工作的
从根本上来说,理解计时器如何工作很重要。通常情况下,计时器的行为并不直观,因为它在一个单独的线程中,让我们从三个函数的测试开始,对于每一个函数我们都有机会构建和控制计时器。
var id = setTimeout(fn,delay);启动一个计时器,它将在延迟时间之后调用特定的函数,该函数返回一个唯一的ID,利用这个ID计时器在稍后的时间里被取消;
var id = setInterval(fn,delay);与setTimeout相似,但它不断的调用函数(每隔一定延迟时间)直到它被取消;
clearInterval(id),clearTimeout(id);接受计时器的 ID(由上述任意一个函数返回)并停止调用计时器。
为了理解计时器内部是如何工作的,有一个很重要的概念需要加以探讨:延迟是无法保证的。既然浏览器中所有javascript 是在一个单线程中运行的,那么异步事件(如鼠标点击、计时器)在执行中也只有存在开放状态时才运行,下面这张图很好的说明了这个问题:
这张图有很多信息需要消化,充分理解它将使你对异步js执行有一个更好的认识,图表是一维的,在垂直方向上是时间(挂钟),以毫秒为单位。蓝色盒子代表js执行的比例。例如,第一个javascript块运行时间大约为18秒,鼠标点击大约为11秒等等。
既然javascript在一定时间内之执行一部分代码(源于单线程的特性),那么这些代码块的每一个就被封锁在其它异步事件执行的进程中。这表明
当一个异步事件发生时(如鼠标点击、计时器释放、XM


相关文档:

JavaScript 获取对象的高度和宽度详细说明

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......

在页面上使用javascript调用aspx.cs后台方法

(一)aspx页面上的代码片段
<body>
<script language="javascript" type="text/javascript">
    function DisplayBehindCode() {
    var text="<%=Name()%>";
    alert(text);
    }
</script>
....
<asp:Button ID ......

认识javascript的Object功能与性质

js中的任何对象都继承Object函数类,因此都Object.prototype包含的所有方法。今天我就来讨论下这些最基本的方法和怎样去重写。
首先,包含7个最基本的函数:
function A()
{
var obj = {};
obj.constructor //Object函数
obj.hasOwnProperty //判断参数是否是obj对象的本地非protorype属性
obj.isPrototype ......

javascript动态创建控件的3种方法

以创建按钮为例
<html>
<head>
   <script>
    function add1()
   {
   var obtn=document.createElement("input");
obtn.setAttribute("type","button");
obtn.setAttribute("value","test1");
document.body.appendChild(obtn);//注意如果有f ......

javascript弹出窗口代码大全

如何利用网页弹出各种形式的窗口,我想大家大多都是知道些的,但那种多种多样的弹出式窗口是怎么搞出来的,我们今天就来学习一下: 1.弹启一个全屏窗口
;
www.kunde58.com

2.弹启一个被F11化后的窗口
;
www.kunde58.com

3.弹启一个带有收藏链接工具栏的窗口 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号