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

网页制作与网站建设初学者必看教程手表网站

网页制作与网站建设初学者必看教程,手表网站,wordpress配置数据库主机名,学服装设计的就业方向当你看到这篇博客的时候#xff0c;一定会和狗哥结下不解之缘#xff0c;因为狗哥的博客里不仅仅有代码#xff0c;还有很多代码之外的东西#xff0c;如果你可以看到最底部#xff0c;看到投票环节#xff0c;我相信你一定感觉到了#xff0c;狗哥的真诚#xff0c;狗… 当你看到这篇博客的时候一定会和狗哥结下不解之缘因为狗哥的博客里不仅仅有代码还有很多代码之外的东西如果你可以看到最底部看到投票环节我相信你一定感觉到了狗哥的真诚狗哥是都么的能胡说八道。 目录 一、无处不在的定时任务 二、setTimeout的使用 1. setTimeout的使用场景 2. 替代setInterval  三、setInterval的使用 1. setInterval的使用场景 2.  项目中会遇到的问题 四、node-schedule的使用 1. node-schedule的使用场景 2.  简单使用node-schedule 3. 执行钥匙Corn 4. Corn在项目中的问题  5. 自学前端有没有必要学习node 五、定时器代码之外的思考 一、无处不在的定时任务 定时任务简单的理解就是多久后做什么每隔多久做什么 。你是否感觉到了其实定时任务是一个无处不在的东西 比如电商平台的秒杀倒计时每隔一秒就要执行一次给你一种快要结束的紧迫感比如我们从12306买车票支付页的倒计时每隔一秒就会告诉你你的订单再不支付票就不属于比如产品人员告诉我们每天晚上12点要备份A表的数据比如页面加完成后的1分钟后自动跳转到其他某个页面去。 再比如HR告诉你下午3点去一下会议室有重要的事情要谈比如每天9点你都不得不开始工作迟到就不行比如每天9:30都会开早会组长总是风雨无阻你不去他就看你不顺眼比如每个月15号才会发工资早一天都不会给你比如65岁才退休他不管你35岁到65岁之间干啥去了也不管你是不是有公司嫌你35岁是大龄码农了。 这都是定时器他会在固定的时间告诉你你必须去做这件事程序中有代码去控制生活中有一只无形的手你看不见他却控制着你。 二、setTimeout的使用 1. setTimeout的使用场景 setTimeout的使用场景规定为多久后执行什么只执行一次。今天我们简单实现一个场景场景规定在页面在加载完成之初不去加载某些东西以减少首次加载的内容降低首屏渲染的压力。当首屏组件加载完成之后的500毫秒我们才去加载一些额外的东西。 以vue为例例如首屏都放在了a.vue下我们知道mounted生命周期可以表示这个组件DOM已加载完成但组件加载完成不代表图片和请求都已完成渲染了所以我们预留了500毫秒代码如下 。。。 // 表示a.vue其余代码 mounted() {let timeout1 setTimeout(() {// 需要延迟做的事情// 并且延迟完毕要清除setTimeouttimeout1 null;window.clearTimeout(timeout1);}, 500) }, 2. 替代setInterval  很多时候我们不建议使用setInterval这个原因下面说虽然setTimeout是单次执行但执行完了再在里面执行一次不就成了多次执行了嘛。 例如我们实现一个累加器从0开始累加超级棒的代码就像下面这样是不是很棒我的代码又不是不能跑就算代码不能跑我能跑得了呗。 var num 0; setTimeout(() {num 1;setTimeout(() {num 1;setTimeout(() {num 1;......setTimeout(() {num 1;}, 970)}, 970)}, 970) }, 970) 但如果由于某些原因自己需要这份工作呢自己跑不了那就得把代码修改一下让他不这么棒变得辣鸡一些 var num 0; function timeoutFn() {setTimeout(() {num 1;timeoutFn();}, 970)console.log(经海路大白狗看一下num吧, num); } timeoutFn(); 三、setInterval的使用 1. setInterval的使用场景 很显然setInterval强调多次定时的去执行。比如定时累加器比如定时轮训获取而不用socket长链接比如我们常见的轮播图3秒动一次。今天我们不做数字累加1的场景那样太low了我们做一个累加13的而且当数值累加到大于等于100的时候再重新从0开始往上累加。 有没有发现狗哥博客的一个特点我不断的在强调项目场景项目场景就是希望你不要把知识点孤立起来知识点是要用于实战的我们学再多开发知识点最终都是要走向公司去挣工资的。 var num 0; setInterval(() {if (num 100) {num 0;}num 13; }, 970) 2.  项目中会遇到的问题 由于浏览器和setInterval的特性。setInterval本身他创建的时候就在堆内存中进行了存储队列在内存中一直存在也保证了到下一个时间可以准时的执行而结合浏览器的特性浏览器发现这个堆内存后进行了一定的优化处理。当你的浏览器页签不处于屏幕最上方的时候浏览器则会将这个定时任务进行挂起操作等这个浏览器页签再恢复到最上层的时候浏览器再恢复其执行。 所以我们会经常发现一个问题例如轮播图正在准时3秒动一次然后浏览器被切走了等你隔一段时间回来后呢轮播图就像疯了一样的转动然后再继续恢复为3秒一动又或者是在IOS还是什么环境下来着我记得当时是做一个倒计时的功能。当浏览器切走之前还剩12分钟等浏览器切走之后呢倒计时就不动了等过了2分钟再切回来的时候发现还是12分钟又开始倒计时。 其实这个时候可以检测当前浏览器是否处于用户眼前或者说是否被切走了用这个代码来判断 var countSecondFn null; function goOnCount() {countSecondFn setInterval(() {// 任务执行}) } document.addEventListener(visibilitychange,function(){if(document.visibilityStatehidden){window.clearInterval(countSecondFn);countSecondFn null;}else if(document.visibilityStatevisible){goOnCount(); } }); 所以很多时候我们更希望用setTimeout的递归来替换掉setInterval的执行减少更多的问题。  四、node-schedule的使用 1. node-schedule的使用场景 node-schedule目前主要用于node服务端例如我们的一些页面数据是配置出来的那么就没有必要每次都去请求数据库再返回给前端可以定时一下几分钟发送一次请求即可再比如我们每次升级上线为了保证一个良好的性能HTML可能会部署在服务端而静态资源则部署在另外的服务器。这样静态资源从v1.0升级到v1.1则可以定时的去获取配置平台的版本号然后动态拼接到HTML页面上以保证可以每次升级拿到最新的静态资源。 但node-schedule和setInterval有本质上的区别。node-schedule更强调哪一天哪个小时哪一分钟哪一秒钟准确的去执行。就像我们经常被告知你明天早上9点去做一件什么事情每天晚上9点你才可以下班。这样的场景恐怕setInterval不能够胜任了。 2.  简单使用node-schedule 例如每到10分3点10分、8点10分。。。12点10分的时候我们去请求一下数据第一次请求到的数据进行缓存处理再次请求到的数据与老数据进行对比如果无更新则继续用缓存数据如果有更新则利用新数据。 const schedule require(node-schedule); let job schedule.scheduleJob(* 10 * * * *, () {axios(url, data, (res) {// 与缓存数据对比// 后者再犯个懒不对比每次都用新数据请求异常了再用缓存数据}) }); 3. 执行钥匙Corn 上一段代码中的   * 10 * * * *   呢就是所谓node-schedule的定时钥匙这6个星号从左到右表示秒 分 小时 天 月 年 这样看是不是就更明白他的准确性和与setInterval的区别了。  4. Corn在项目中的问题  竟然这个Corn定时钥匙如此准确规定了哪一分钟那一秒钟去执行去取数据比如你写的是每分钟的第10秒去获取这本没有问题。比如全公司都公用一个配置平台呢你每分钟的第10秒去获取那比如你这个项目用到了N台机器呢这N台是否要都是每分钟的第10秒去获取那如果全公司的N个业务系统都这么写呢会有什么问题呢哈哈如果听明白了狗哥的意思欢迎和狗哥交流。 5. 自学前端有没有必要学习node 其实我觉得对于自学前端急于找到前端开发工作的人没有太大必要去学习node服务端知识。你基本把纯前端的知识学到位已经很不容易了。但如果有时间还是建议简单学习一下哪怕只是搭个koa的架子练习着写一下接口数据格式。一旦自己练习写过接口数据自己再从前端发送ajax调用一下我相信你将会有一个更全面的对开发项目的认知在你遇到问题的时候有更多的解决思路。 但如果你没有学透千万别在简历上写你精通node服务端也别给自己挖坑说自己做过。你不说他们也不会问这不丢人放心吧。 五、定时器代码之外的思考 狗哥觉得其实即便你做了开发也不应该生活中只有开发我们努力工作是为了生活为了更好的生活所以狗哥更偏向于基于故事讲基础知识点也更喜欢着力于知识点冒出个小故事这句话换成抓手咋说。 慢慢的习惯了开发中的定时任务我们清楚的知道几秒后该让网页执行一件什么事每天几点该执行一件什么事可能觉得已经能够胜任工作了但久而久之你到了一定的时刻就必须得离开学校赖在那里也没有用到了一定的时机你就需要结婚生子去面对。没人有强拉着你9点前必须到公司但你知道9点前不到不行。老板告诉你这个东西下班就得做出来你不做出来也行啊但你知道你必须做出来。 人生就像一个大的定时器大的定时器里面又环环紧扣了一个个的小定时器他们无形却似有形直到那个你不知道的永恒。
http://www.dnsts.com.cn/news/109175.html

相关文章:

  • 做淘客应该知道的网站个人不动产登记网上查询
  • 外贸网站发外链内蒙古住房和城乡建设部网站
  • 东莞技术好的网站建设推广网站建设远程培训
  • 在哪个网站可以一对一做汉教网站地图生成器
  • 专业建站公司费用关键词规划师
  • 西安学校网站建设报价wordpress 怎么上传到空间
  • 信息门户网站怎么做建设公司网站报价
  • 利用高权重网站做关键词学设计需要多少钱
  • jsp做的网站有哪些网站开发接口文档模板
  • 兴义建设局网站免费素材视频软件app
  • 做团建活动网站html做游戏网站
  • 建立网站的基本流程有哪些步骤更新备案 网站 打开
  • 青岛做网站建设网络建设标准
  • 网站建设费用要求wordpress js无效
  • 我的网站360搜索被做跳转网站开发图标
  • 网站的建设模式小吃加盟方案
  • 新月传媒做网站 怎么样sync wordpress
  • 乌市建设工程质量监督站网站四川超宇建设集团有限公司网站
  • 一个网站的建设需要什么手续费搜狗网站seo
  • linux上部署wordpress漳州seo建站
  • 企业网站制造信阳建设监理协会网站
  • 怎么在网站上放广告客户管理系统免费
  • 中小微企业纳税申报做网站和优化共多少钱?
  • 深圳光明建设局官方网站网站备案 更改ip
  • 厦门建设网站首页温州外贸网站建设公司
  • 毕业设计做网站应该学什么网站如何做点击链接地址
  • 游戏网站建设策划书深圳网站开发培训价格
  • 中文网站什么意思广州网页制作公司
  • 做产品包装的3d网站做网站需要买空间么 服务器
  • 洛阳建设网站的公司大牌印花图案设计网站