多个goruntine 性能变慢_提高 JavaScript 性能的 12 个技巧
作者丨Liz Parody
在创建 Web 应用程序时应始终考虑性能。为了帮助你开始,本文列举了有效提高应用程序性能的 12 种方法。
性能是创建网页或应用程序时最重要的一个方面。没有人想要应用程序崩溃或者网页无法加载,或者用户的等待时间很长。根据 Kissmetrics,47%的访问者希望网站在不到 2 秒的时间内加载,如果加载过程需要 3 秒以上,则有 40%的访问者会离开网站。
考虑到以上这些数字,你在创建 Web 应用程序时应始终考虑性能。为了帮助你开始,以下提供了有效提高应用程序性能的 12 种方法:
1、在浏览器中缓存
要这样做有两种选择。第一种是使用 JavaScript Cache API,我们可以安装 service worker 来使用它。第二种是使用 HTTP 协议缓存。
访问某个对象通常要用脚本。通过把重复访问的对象存储在用户定义的变量中,以及在后续对该对象的引用中使用变量,可以立即实现性能的提升。
2、定义执行的上下文
为了有效地衡量你在程序中加入的任何改进,你必须创建一组定义良好的环境,以便测试代码的性能。
对所有 Javascript 引擎的所有版本进行性能测试和优化实际上是不可行的。但是,在单一的环境中进行测试并非一个好习惯,因为你可能会得到片面的结果。因此,建立多个定义良好的环境并测试代码是否有效非常重要。
3、删除未使用的 JavaScript
此步骤不仅会缩短传输时间,还会缩短浏览器分析和编译代码所需的时间。为此,你必须考虑以下几点:
- 如果你检测到一个用户未使用的功能,最好删除所有与之相关的 JavaScript 代码,这样网站的加载速度会更快,用户也会有更好的体验。
- 还有可能,你错误地加入了一个并不需要的库,或者你有依赖项,这些依赖项提供的功能在所有浏览器中原本就有,那么你无需再增加多余的代码。
4、避免使用太多内存
你应该始终给内存加一条限制,那就是只有绝对必须的内容才能使用内存,因为你无法知道运行应用程序的设备到底需要多少内存。只要你的代码要求浏览器保留新的内存,浏览器的垃圾收集器就会被执行,并停止 JavaScript 的运行。如果经常发生这种情况,页面将变慢。
5、推迟不必要的 JS 加载
用户希望页面快速加载,但并非所有函数都需要在页面的初始加载时就可用。如果用户必须执行某个操作才能执行某个函数(例如,通过单击某个元素或更改选项卡),那么你可以将该函数的加载推迟到初始页面加载之后。
通过这种方式,你可以避免加载和编译那些会延迟页面初始显示的 JavaScript 代码。页面完全加载后,我们可以再开始加载这些功能,以便它们在用户开始交互时立即可用。在 RAIL 模型中,Google 建议将此延迟加载以 50 毫秒为单位进行,这样就不会影响用户与页面的交互。
6、避免内存泄漏
如果内存正在泄漏,则加载的页面将保留越来越多的内存,并最终占用设备的所有可用内存并严重影响性能。你可能见过此类故障(并且可能对此类故障感到懊恼),例如在带有轮播或图像滑动条的页面上。
在 Chrome 开发者工具中,你可以通过在“性能”标签中记录时间线来分析你的网站是否存在内存泄漏。通常,内存泄漏的原因是,你从页面中删除了 DOM,但有一些变量还在引用这些 DOM,因此,垃圾收集器无法消除它们。
7、适当的使用 Web worker
余下精彩内容,可点击“了解更多”进行查看
多个goruntine 性能变慢_提高 JavaScript 性能的 12 个技巧相关推荐
- OneAPM大讲堂 | 提高JavaScript性能的30个技巧
文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术.它使网站内容 ...
- 计算机高级性能还原,【如何提高电脑性能】 怎么把cpu性能调到最佳
电脑在使用一段时间后,会慢慢变慢,仿佛是戴上了各种枷锁.下面是小编收集整理的如何提高电脑性能,希望对大家有帮助~~ 提高电脑性能的方法 工具/原料 电脑一台 方法/步骤 在确认没有病毒和流氓软件的前提 ...
- 为什么非阻塞io性能更好_提高性能:流的非阻塞处理
为什么非阻塞io性能更好 1.简介 想象一下,我们有一个需要访问外部Web服务的应用程序,以便收集有关客户端的信息,然后对其进行处理. 更具体地说,我们无法在一次调用中获得所有这些信息. 如果我们要查 ...
- java 代码效率_提高代码性能效率总结(一)--Java
Java代码实现一些具体功能时常常有很多方法,不过有些方法的使用可以使代码的性能更好,效率更高,所以决定总结一些使用技巧,方便自己巩固,也方便初学者进行提高. 1.使用&&和||比&a ...
- CAD中插入外部参照字体会变繁体_提高CAD绘图效率,外部参照你真的懂?
好课推荐: 1.CAD2014:点击查看 2.室内&全屋:点击查看 3.CAD2019:点击查看4.CAD2018:点击查看5.Bim教程:点击查看 6.室内手绘:点击查看7.CAD三维:点击 ...
- java 易变变量_提高java编程质量 - (一)易变业务使用脚本语言编写
脚本语言的3大特征: 1.灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型: 2.便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务 3.简单:脚本语言语 ...
- macbook所有型号大全_提高MacBook电池寿命的15个技巧
苹果的MacBook系列以其电池寿命著称.它们的电池续航时间一般都很好,按照苹果公司的标准,所有型号的电池续航时间都保证为10小时.然而,这里有很多附加的条款和条件,如果你想延长你的MacBook P ...
- 蓝牙小电池图标_提高MacBook电池寿命的15个技巧
苹果的MacBook系列以其电池寿命著称.它们的电池续航时间一般都很好,按照苹果公司的标准,所有型号的电池续航时间都保证为10小时.然而,这里有很多附加的条款和条件,如果你想延长你的MacBook P ...
- 提高java效率_提高Java编程效率的一个技巧
我们在用Eclipse等IDE进行Java开发时,对于复制.粘贴等操作,我们最常用的是Ctrl+C和Ctrl+V,甚至是用鼠标右键进行操作.其实效率最高的操作方式应该还是命令行或快捷键操作方式.编程界 ...
最新文章
- python模块的导入的两种方式区别详解
- 事务超时时间无效_阿里分布式事务组件 fescar/seata 对 XA 2PC 的改进及其设计思想...
- 关于2017届学长制作分享软件share(失物招领)的使用体验和需改进的内容
- Django - Cookie和Session
- HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)
- 关于CMS垃圾回收器的几个问题
- 【IDEA】IDEA报错 illegal character U+00A0异常解决
- 服务器是怎么工作的?(二)——arp工作原理详细解析
- 蓝桥杯 ALGO-150 算法训练 6-1 递归求二项式系数值 java版
- TCP程序中发送和接收数据
- SQL查询语句-返回名称的分类
- Word排版的正确姿势!(Word论文排版教学)
- html静态资源加载404,spring security访问静态资源文件出现404
- 蓝桥杯——六面体染色
- 绝对经典的原理定理理论原则效应法则
- 北京精雕自定义机床模型仿真
- 利用html表单制作个人简历
- centos7 安装 nodejs 16
- 护眼台灯国家标准是什么?国aa和国a台灯区别大吗
- 特斯拉又双叒产量不足,下一个特斯拉还有多远?
热门文章
- Net Core下使用RabbitMQ比较完备两种方案(虽然代码有点惨淡,不过我会完善)
- CentOS ASP.NET Core Runtime Jexus跨平台布署
- 【招聘(北京)】东方国信 工业互联网
- 【深圳】掌通宝科技有限公司技术总监(兼架构师),约吗
- Entity Framework Core 1.1 升级通告
- 【干货】”首个“ .NET Core 验证码组件
- django23:BS4/kindeditor上传图片
- C#服务器编程:WebService、Ajax与回调函数(一)
- C语言试题六十六之请编写函数实现三个数从小到大排序
- Android之解决开启热点后跳转页面不稳定问题