在我们开发的过程中,应该始终考虑性能xbaixing.com。而本文列举了有效提高系统性能的12个方法,如果朋友们有更多的技巧请在吴小迪的博客下方评论,谢谢。
性能是创建网页或应用程序时最重要的一个方面。没有人想要应用程序崩溃或者网页无法加载,或者用户的等待时间很长。根据Kissmetrics,47%的访问者希望网站在不到2秒的时间内加载,如果加载过程需要3秒以上,则在40%的访问者会离开网站。
考虑到以上这些数字,你在创建Web应用程序时应始终考虑性能。为了帮助你开始,以下提供了有效提高应用程序性能的12种方法:
一:在浏览器中缓存
要这样做有俩种选择。第一种是使用JavaScript Cache API,我们可以安装service worker来使用它。第二种是使用HTTP协议缓存。
访问某个对象通常要用脚本。通过把重复访问的对象存储在用户定义的变量中,以及在后续对该对象的引用中使用变量,可以立即实现性能的提升。
二:定义执行的上下文
为了有效地衡量你在程序中加入的任何改进,你必须创建一组定义良好的环境,以便测试代码性能。
对所有JavaScript引擎的所有版本进行性能测试和优化实际上是不可行的。但是,在单一的环境中进行测试并非一个好习惯,因为你可能会得到片面的结果www.xbaixing.com小百姓网。因此,建立多个定义良好的环境并测试代码是否有效非常重要。
三:删除未使用的JavaScript
此步骤不仅会缩短传输时间,还会缩短浏览器分析和编译代码所需的时间。为此,你必须考虑以下几点:
如果你检测到一个用户未使用的功能,最好删除所有与之相关的JavaScript代码,这样网站的加载速度会更快,用户也有更好的体验。
还有可能,你错误地加入了一个并不需要的库,或者你有依赖项,这些依赖项提供的功能在所有浏览器中原本就有,那么你无需再增加多余的代码。
四:避免使用太多内存
你应该始终给内存加一条限制,那就是只有绝对必须的内容才能使用内存,因为你无法知道运行应用程序的设备到底需要多少内存。只要你的代码要求浏览器保留新的内存,浏览器的垃圾收集器就会被执行,并停止JavaScript的运行。如果经常发生这种情况,页面将变慢。
五:推迟不必要的JS加载
用户希望页面快速加载,但并非所有函数都需要在页面的初始加载时就可用。如果用户必须执行某个操作才能执行某个函数(例如,通过单击某个元素或更改选项卡),那么你可以将该函数的加载推迟到初始页面加载之后。
通过这种方式,你可以避免加载和编译那些会延迟页面初始显示的 JavaScript 代码。页面完全加载后,我们可以再开始加载这些功能,以便它们在用户开始交互时立即可用。在 RAIL 模型中,Google 建议将此延迟加载以 50 毫秒为单位进行,这样就不会影响用户与页面的交互。
六:避免内存泄漏
如果内存正在泄漏,则加载的页面将保留越来越多的内存,并最终占用设备的所有可用内存并严重影响性能小+百+姓+网。你可能见过此类故障(并且可能对此类故障感到懊恼),例如在带有轮播或图像滑动条的页面上。
在 Chrome 开发者工具中,你可以通过在“性能”标签中记录时间线来分析你的网站是否存在内存泄漏。通常,内存泄漏的原因是,你从页面中删除了 DOM,但有一些变量还在引用这些 DOM,因此,垃圾收集器无法消除它们。
七:适当的使用Web worker
当你执行耗时很长的代码时,请使用 Web worker。根据 Mozilla 开发人员网络 (MDN) 文档:“Web Worker 可以在与 Web 应用程序的主执行线程分开的后台线程中运行脚本操作。这样做的好处是你可以在一个单独的线程中执行耗时又费力的的处理,同时让主(通常为 UI)线程运行而不被阻塞或减慢。”
Web worker 允许代码执行处理器密集型计算,而不阻塞用户界面线程。Web Worker 允许你生成新线程并将工作委托给这些线程以获得高效的性能。这样,通常会阻碍其他任务且需要长时间运行的任务将被传递给 worker,从而让主线程可以在无阻碍的情况下运行。
八:适当将DOM元素保存在局部变量中
访问 DOM 会很慢。如果要多次读取某元素的内容,最好将其保存在局部变量中。但记住重要的是,如果稍后你会删除 DOM 的值,则应将变量设置为“null”,不然会导致内存泄漏。
九:优先访问局部变量
JavaScript 首先搜索以查看变量是否存在于本地,然后才在更高级别的作用域内逐步搜索到全局变量为止x b a i x i n g c o m。将变量保存在本地作用域内能让 JavaScript 更快地访问它们。
局部变量是基于最具体的作用域的,并且可能会穿过多个级别的作用域,因此查找这一动作可能导致出现通用的查询。在一个它前面没有变量声明的局部变量中定义函数作用域时,需要在每个变量之前加上 let 或 const,以便定义当前作用域,防止查找并加速代码执行。
十:避免使用全局变量
因为脚本引擎在从函数或其他作用域内引用全局变量时需要逐一查看作用域,所以当本地作用域丢失时,该变量将被销毁。如果全局作用域中的变量无法在脚本的生命周期内持续存在,则性能将得到改善。
十一:实施一些优化方案
始终使用计算复杂度最低的算法和最佳的数据结构来解决任务。
重写算法以获得相同的结果和更少的计算。
避免递归调用。
给重复的函数加入变量、计算和调用。
分解和简化数学公式。
使用搜索数组:用它们来获取基于另一个的值,而不是使用 switch/case 语句。
使条件总是更有可能为真,以更好地利用处理器的推测执行。
如果可以,请使用位级运算符替换某些操作,因为这些运算符的处理周期较短www.xbaixing.com。
十二:使用工具检测问题
Lighthouse 是一个很好的网页性能工具,它可以帮助你审核性能、可访问性、最佳实践和 SEO。谷歌 PageSpeed 旨在帮助开发人员了解网站的性能优化和潜在可改进的方面。这些组件旨在识别网站是否符合 Google Web 性能最佳实践,以及将调整过程自动化。
在 Chrome 中,你还可以使用主菜单中的“更多工具”选项来查看每个选项卡使用的内存和 CPU。对于更高级的分析,你可以使用 Firefox 或 Chrome 中的开发人员工具“性能”视图来分析不同的指标,例如:
devtools 的性能分析允许你在加载页面时模拟 CPU 消耗、网络和其他指标,以便识别和修复问题。
为了更深入地了解,建议你使用 JavaScript Navigation Timing API,它允许你详细测量代码的每个部分从编程本身中获取的内容。
对于基于 Node.js 构建的应用程序,NodeSource Platform 也是一种非常好、影响低的方式,它可以在非常精细的级别上探索应用程序性能。
全面的 Node.js 指标可帮助你识别内存泄漏源或其他性能问题,并更快地解决这些问题。
最后的说明在代码的可读性和优化之间保持平衡很重要。代码由计算机解释,但我们需要确保代码将来可以由我们自己或其他人维护,因此它们需要易于理解。更多文章就在蓝蓝设计每日一贴。蓝蓝设计为企业提供卓越的大屏设计、UI界面设计、BS界面设计、cs界面设计、用户体验、交互设计、网站建设、包装设计计、图标定制、平面设计服务。
您可以直接联系优秀的软件ui设计提供者北京蓝蓝设计
欢迎访问,开始愉快的合作!
以营利为目的的演出活动所必须办理的证件,就是营业性演出许可证哪些企业需要办理营业性演出许可证:经纪公司、直播平台、演出机构、演出团体、个体演员办理要求:1.三名经纪人证书2.固定的办公地点3.与演
低压电工操作焊工操作证高压电工操作证
电工焊工叉车制冷空调取证培训复审电工焊工叉车制冷空调取证培训取证
北京土建施工队,专业承接土建工程、房屋改造、楼层加建、结构加固、钢结构厂房、阁楼搭建、专业拆除等’
北京铭诚嘉业公司承接屋面防水、地下室整体防水、卫生间防水、地铁隧道防水、大坝补漏补强加固、外墙外窗套渗漏治理等防水工程。还包括外墙清洗、楼宇外墙装饰、外墙涂料翻新、外墙安装等高空作业工程及地坪工程
北京专业加固/地基沉降注浆加固/地基基础加固施工改革开放以来,建筑业迅速发展,建筑工程质量逐年提高,但工程质量事故还时有发生,造成了许多不应有的损失。这是由于各地区的工程地质条件不同
本公司自2000年开始专门从事建筑基坑隧洞山体护坡,市政公用工程、地基与基础工程、隧道工程、山体护坡、边坡锚固工程、锚杆喷射混凝土支护等科研
北京北方远思科技有限公司是一家致力于完善企业信息化服务的企业。北方远思科技公司以综合布线、网络布线、电话布线、机房建设、公共广播、集团电话、电话程控交换机设计、安装、维护的系统集成高新科技集团公司。北
北京远思科技有限公司以门禁安装、门禁维修、中控门禁设备、高优门禁设备、指纹门禁,人脸设别门禁、自动门门禁设备安装维修公司。公司承接北京以及河北所有工程项目。是国贸的一家做门禁安装,设计方案的门禁安装公
【园区优势】5层正规厂房,首层高6米,二三层高4.5米,四五层高4米,一层面积有1265平,二三层面积1265平,高端大气,科技感十足的设计。均可进行工商注册,环评等手续。园区所有楼层面积大小可按客户
位于顺义区腾仁路22号,闽京蒲企业园一期,新建五层标准厂房5000平出租,单层1265平,高4.5-6米,柱距8.1米,配3吨货梯。国有工业用地,50年产权,可注册和环评,配套有餐厅、宿舍、超市、银行
劳斯莱斯幻影:5500黑色6500白色劳斯莱斯古斯特4500黑色白色劳斯莱斯银云老爷车3800齐全宾利欧陆飞驰--3000黑色宾利欧陆---GT---3500黑色宾利敞篷---GT---4000红色新
想用奔驰威亚诺和奔驰斯宾特,房车GMC的朋友,本人新购买两辆新款奔驰威亚诺,一辆奔驰斯宾特,两辆GMC,想寻求商务用车、影视用车及婚庆用车服务。我会安排最好的司机为您提供最好的服务。期待您的来电。谢谢!
劳斯莱斯幻影:5500黑色6500白色劳斯莱斯古斯特4500黑色白色劳斯莱斯银云老爷车3800齐全宾利欧陆飞驰--3000黑色宾利欧陆---GT---3500黑色宾利敞篷---GT---4000红色新
劳斯莱斯幻影:5500黑色6500白色劳斯莱斯古斯特4500黑色白色劳斯莱斯银云老爷车3800齐全宾利欧陆飞驰--3000黑色宾利欧陆---GT---3500黑色宾利敞篷---GT---4000红色新
坚果投影售后服务电话 坚果售后修理 坚果投影仪维修 坚果售后服务电话 坚果投影维修点 坚果投影仪售后网点 坚果p2无法开机原因 坚果p2突然无法开机 坚果G7投影机无法开机 坚果G7投影仪经常死机 坚果投影仪强行关机 坚果投影仪忽然不亮了 坚果投影死机如何重启
极米售后服务 极米投影维修站点 极米投影仪不开机 极米投影仪开机不显示 极米投影仪红屏 极米投影仪开机黑屏极米投影仪客服服务 极米投影仪自动关机 极米投影仪发烫
极米h1开机无反应 极米Z5红屏修要多少钱 极米h1怎么开机 极米投影仪开机无反应 极米h1不能开机 极米开机页面进不去 极米z4无法开机 极米投影仪不亮了极米无法充电了 极米投影充电多久 极米投影仪无法充电 极米投影红屏哪里问题极米Z5红屏怎么维修 极米投影变成红色 极米投影仪突然红屏什么原因 极米投影屏幕发红 投影仪发红还能用吗 极米投影画面变绿
酷乐视售后服务 酷乐视投影维修站点 酷乐视投影仪不开机 酷乐视投影仪开机不显示 酷乐视投影仪红屏 酷乐视投影仪开机黑屏酷乐视投影仪客服服务 酷乐视投影仪自动关机 酷乐视投影仪发烫
北京学保育员证就近报名考试网络授课时间自由学保育员证报名考试详情咨询李菲老师证书在你以后找工作的时候有一定的加持作用,甚至可以让你有选择工作的余地,因为有一些幼儿园或者教育培训机构会优先选择有证书的人
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。欢迎访问,开始愉快的合作!...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。http://www.lanlanwork.com/...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。http://www.lanlanwork.com/...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。http://www.lanlanwork.com/...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。...
北京蓝蓝设计是一家专注而卓越的UI界面设计公司,以良好的服务为众多优秀企业提供卓越的UI咨询、竞品分析、交互设计、UI界面设计、嵌入式显示屏界面设计开发、图标icon设计、大型网站设计、用户体验、开发实施....是一家从用户研究、交互设计及优化咨询、软件和网站视觉设计、界面开发实施全方位提供解决方案的创新型设计公司。http://www.lanlanwork.com/...
北京跳起科技有限公司,是集APP,小程序建设、软件开发、网站建设、网络工程、系统集成和维护服务于一体的高科技IT企业。是国内专业的电商软件开发、服务提供商。 建立了一整套标准化APP小程序为基础的&a...
【公司简介】 天津华阳在线科技有限公司凭借优秀的技术运营团队和多年的网络营销经验,用系统性的网络营销方法已帮助众多传统企业成功转型升级!天津华阳在线专注于品牌网站建设,营销型网站建设,网站优化,竞价托...