文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

web前端:不要覆盖标准方法

懒人小魔法师

懒人小魔法师

2024-04-23 23:52

关注

  在网页上点击鼠标右键,选择菜单中的"查看源文件",就可以通过记事本看到网页的实际内容。可以看到网页实际上只是一个纯文本文件。它通过各式各样的标记对页面上的文字、图片、表格、声音等元素进行描述(例如字体、颜色、大小),而浏览器则对这些标记进行解释并生成页面,于是就得到你现在所看到的画面。为什么在源文件看不到任何图片?网页文件中存放的只是图片的链接位置,而图片文件与网页文件是互相独立存放的,甚至可以不在同一台计算机上。

  需求:

  页面不可见时,例如切换浏览器页签、最小化浏览器,暂停所有定时器;页面显示时,再启动定时器。

  一个解决方案如下:

  constuuid=(()=>{

  letno=0;

  return()=>no++;

  })();

  constoriginSetInterval=window.setInterval;

  constoriginClearInterval=window.clearInterval;

  consttimers=[];

  conststartTimers=()=>

  timers.forEach(t=>{

  t.originIntervalId=originSetInterval(

  t.fn,

  t.ms

  );

  });

  conststopTimers=()=>

  timers.forEach(t=>{

  originClearInterval(t.originIntervalId);

  });

  document.addEventListener(

  "visibilitychange",

  ()=>

  document.visibilityState==="visible"

  ?startTimers()

  :stopTimers()

  );

  window.setInterval=(fn,ms)=>{

  constoriginIntervalId=

  document.visibilityState==="visible"

  ?originSetInterval(fn,ms)

  :undefined;

  constid=uuid();

  timers.push({

  fn,

  ms,

  originIntervalId,

  id

  });

  returnid;

  };

  window.clearInterval=id=>{

  constt=timers.find(t=>t.id===id);

  originClearInterval(t.originIntervalId);

  timers.splice(timers.indexOf(t),1);

  };

  覆写setInterval和clearInterval,不用改已有代码,所有定时器就都能自动启停。

  但我不推荐在项目中这么做,宁愿麻烦点,写个setSmartInterval,全局替换setInterval。原因有很多,例如:

  1可能影响第三方库

  2没法再用原生的setInterval

  3新人培训成本增加

  4……

  其中,我最看重的是:这么做导致代码行为出人意料。当一个东西和经验认知不一样时,使用它要付出更多的思考。每次用setInterval,都会想一下它和原生的区别。看起来是小事,却会打断你的思路。“Don'tmakemethink”对于代码设计同样重要。

  从08年开始,国内网页游戏开始不断兴起,网页游戏(Webgame)又称web游戏,无端网游,简称页游。网页游戏也是需要重视水平的,如音效的筛选、恰到好处的乐曲与音效搭配、以及良好的结构平台等等,有了这些元素,才能做出一个好的网页游戏,同时也会引来更多的浏览人数。网页游戏的出现让中国进入了一个新的网络游戏平台,也进入了一个页游发展的竞争时代。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯