当前位置: 首页 > news >正文

学校门户网站建设工作汇报石家庄做网站的公司哪个好

学校门户网站建设工作汇报,石家庄做网站的公司哪个好,哪家公司做网站不错,seo行业网使用 setTimeout()和 setInterval()创建的定时器可以用于实现有趣且有用的功能。执行时机是不能保证的#xff0c;因为在页面的生命周期中#xff0c;不同时间可能有其他代码在控制 JavaScript 进程。在页面下载完后的代码运行、事件处理程序、Ajax 回调函数都必须使用同样的…使用 setTimeout()和 setInterval()创建的定时器可以用于实现有趣且有用的功能。执行时机是不能保证的因为在页面的生命周期中不同时间可能有其他代码在控制 JavaScript 进程。在页面下载完后的代码运行、事件处理程序、Ajax 回调函数都必须使用同样的线程来执行。实际上浏览器负责进行排序指派某段代码在某个时间点运行的优先级。有关于js的单线程请点击浏览器的多进程 可以把 JavaScript 想象成在时间线上运行的。当页面载入时首先执行是任何包含在script元素中的代码通常是页面生命周期后面要用到的一些简单的函数和变量的声明不过有时候也包含一些初始数据的处理。在这之后JJavaScript 主线程将等待更多代码执行。例如当点击某个按钮时onclick 事件处理程序会立刻执行只要 JavaScript 主线程处于空闲状态。这样一个页面的时间线类似如图 除了JavaScript 主线程外还有一个需要在进程下一次空闲时执行的代码队列。随着页面在其生命周期中的推移代码会按照执行顺序添加入队列。例如当某个按钮被按下时它的事件处理程序代码就会被添加到队列中并在下一个可能的时间里执行。当接收到某个 Ajax 响应时回调函数的代码会被添加到队列。在 JavaScript 中没有任何代码是立刻执行的但一旦主线程空闲则尽快执行。 定时器对队列的工作方式是当特定时间过去后将代码插入。注意给队列添加代码并不意味着对它立刻执行而只能表示它会尽快执行。设定一个 150ms 后执行的定时器不代表到了 150ms 代码就立刻执行它表示代码会在 150ms 后被加入到队列中。如果在这个时间点上队列中没有其他东西那么这段代码就会被执行表面上看上去好像代码就在精确指定的时间点上执行了。其他情况下代码可能明显地等待更长时间才执行。 请看以下代码 var btn document.getElementById(my-btn); btn.onclick function(){ setTimeout(function(){ document.getElementById(message).style.visibility visible; }, 250); //其他代码 }; 在这里给一个按钮设置了一个事件处理程序。事件处理程序设置了一个 250ms 后调用的定时器。点击该按钮后首先将 onclick 事件处理程序加入队列。该程序执行后才设置定时器再有 250ms 后指定的代码才被添加到队列中等待执行。实际上对 setTimeout()的调用表示要晚点执行某些代码。 关于定时器要记住的最重要的事情是指定的时间间隔表示何时将定时器的代码添加到队列而不是何时实际执行代码。如果前面例子中的 onclick 事件处理程序执行了 300ms那么定时器的代码至少要在定时器设置之后的 300ms 后才会被执行。队列中所有的代码都要等到 JavaScript 进程空闲之后才能执行而不管它们是如何添加到队列中的。如图 重复的定时器 使用 setInterval()创建的定时器确保了定时器代码规则地插入队列中。这个方式的问题在于定时器代码可能在代码再次被添加到队列之前还没有完成执行结果导致定时器代码连续运行好几次而之间没有任何停顿。幸好JavaScript 引擎够聪明能避免这个问题。当使用 setInterval()时仅当没有该定时器的任何其他代码实例时才将定时器代码添加到队列中。这确保了定时器代码加入到队列中的最小时间间隔为指定间隔。 这种重复定时器的规则有两个问题(1) 某些间隔会被跳过(2) 多个定时器的代码执行之间的间隔可能会比预期的小。假设某个 onclick 事件处理程序使用 setInterval()设置了一个 200ms 间隔的重复定时器。如果事件处理程序花了 300ms 多一点的时间完成同时定时器代码也花了差不多的时间就会同时出现跳过间隔且连续运行定时器代码的情况。 这个例子中的第 1 个定时器是在 205ms 处添加到队列中的但是直到过了 300ms 处才能够执行。当执行这个定时器代码时在 405ms 处又给队列添加了另外一个副本。在下一个间隔即 605ms 处第一个定时器代码仍在运行同时在队列中已经有了一个定时器代码的实例。结果是在这个时间点上的定时器代码不会被添加到队列中。结果在 5ms 处添加的定时器代码结束之后405ms 处添加的定时器代码就立刻执行。 为了避免 setInterval()的重复定时器的这 2 个缺点你可以用如下模式使用链式 setTimeout() 调用。 setTimeout(function(){ //处理中 setTimeout(arguments.callee, interval); }, interval); 这个模式链式调用了 setTimeout()每次函数执行的时候都会创建一个新的定时器。第二个setTimeout()调用使用了 arguments.callee 来获取对当前执行的函数的引用并为其设置另外一个定时器。这样做的好处是在前一个定时器代码执行完之前不会向队列插入新的定时器代码确保不会有任何缺失的间隔。而且它可以保证在下一次定时器代码执行之前至少要等待指定的间隔避免了连续的运行。这个模式主要用于重复定时器如下例所示。 setTimeout(function(){ var div document.getElementById(myDiv); left parseInt(div.style.left) 5; div.style.left left px; if (left 200){ setTimeout(arguments.callee, 50); } }, 50); 这段定时器代码每次执行的时候将一个div元素向右移动当左坐标在 200 像素的时候停止。 JavaScript 动画中使用这个模式很常见。
http://www.sadfv.cn/news/330826/

相关文章:

  • 电商网站前后台模板廊坊关键词优化
  • 寿光网站建设报价公司移动网站建设
  • 关于美食网站的问卷调查怎么做网站开发预算多少
  • 百色网站优化网站开发php支付接口
  • 建设网站的账务处理珠海新盈科技网站建设
  • 网站开发明细ie浏览器打开建设银行网站
  • 营销型网站建设哪家公司好淘宝关键词搜索工具
  • 做网站需要买空间么 服务器郑州网站排
  • 兰州网站制作公司100推荐常州微信网站建设
  • 最佳外贸英文网站模板怎么进入自己网站主机地址
  • 建设上海公司网站服务器个人买能干什么
  • 淘宝客做软件网站appwordpress cpu占用高
  • 山东网站开发工作室wordpress添加单页模板
  • 宿州市做网站的公司php模拟登陆wordpress
  • 宁波住房和建设局网站首页公司网站界面如何设计
  • 网站制作功能多少钱专门做签到的网站
  • 做外贸仿牌都用哪些网站小程序开发公司哪家好?哪家最好?
  • 苏州做企业网站做网站业务好干吗
  • 杭州电子商务网站建设品牌营销策划成功案例
  • 网站 流量攻击怎么办网上平面设计培训班
  • 珲春市建设局网站制作模板网站
  • 做网站 徐州中国建设银行官网站黄金部王毅
  • 江苏省示范校建设专题网站网站设计ai
  • 任务网站开发wordpress二次元源码
  • 村镇建设年度报表登录网站关键词指数查询工具
  • 网站建设明细报价做网站网站危险吗
  • 最便宜的网站建设网站结构的规划与设计
  • 网站制作要花多少钱盐城网站平台建设
  • 做搜狗网站优化快速排百度app 浏览器
  • 中联汇科 网站建设仿制手机网站教程