作者丨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 个技巧相关推荐

  1. OneAPM大讲堂 | 提高JavaScript性能的30个技巧

    文章系国内领先的 ITOM 管理平台供应商 OneAPM 编译呈现. 您是网站管理员还是网页开发人员?想创建超快速的网站吗? 今天我们来看看 JavaScript,这项神奇而又复杂的技术.它使网站内容 ...

  2. 计算机高级性能还原,【如何提高电脑性能】 怎么把cpu性能调到最佳

    电脑在使用一段时间后,会慢慢变慢,仿佛是戴上了各种枷锁.下面是小编收集整理的如何提高电脑性能,希望对大家有帮助~~ 提高电脑性能的方法 工具/原料 电脑一台 方法/步骤 在确认没有病毒和流氓软件的前提 ...

  3. 为什么非阻塞io性能更好_提高性能:流的非阻塞处理

    为什么非阻塞io性能更好 1.简介 想象一下,我们有一个需要访问外部Web服务的应用程序,以便收集有关客户端的信息,然后对其进行处理. 更具体地说,我们无法在一次调用中获得所有这些信息. 如果我们要查 ...

  4. java 代码效率_提高代码性能效率总结(一)--Java

    Java代码实现一些具体功能时常常有很多方法,不过有些方法的使用可以使代码的性能更好,效率更高,所以决定总结一些使用技巧,方便自己巩固,也方便初学者进行提高. 1.使用&&和||比&a ...

  5. CAD中插入外部参照字体会变繁体_提高CAD绘图效率,外部参照你真的懂?

    好课推荐: 1.CAD2014:点击查看 2.室内&全屋:点击查看 3.CAD2019:点击查看4.CAD2018:点击查看5.Bim教程:点击查看 6.室内手绘:点击查看7.CAD三维:点击 ...

  6. java 易变变量_提高java编程质量 - (一)易变业务使用脚本语言编写

    脚本语言的3大特征: 1.灵活:脚本语言一般是动态类型,可以不声明变量类型直接使用,也可以在运行期改变类型: 2.便捷:脚本语言是解释性语言,在运行期变更非常方便,而不用重启服务 3.简单:脚本语言语 ...

  7. macbook所有型号大全_提高MacBook电池寿命的15个技巧

    苹果的MacBook系列以其电池寿命著称.它们的电池续航时间一般都很好,按照苹果公司的标准,所有型号的电池续航时间都保证为10小时.然而,这里有很多附加的条款和条件,如果你想延长你的MacBook P ...

  8. 蓝牙小电池图标_提高MacBook电池寿命的15个技巧

    苹果的MacBook系列以其电池寿命著称.它们的电池续航时间一般都很好,按照苹果公司的标准,所有型号的电池续航时间都保证为10小时.然而,这里有很多附加的条款和条件,如果你想延长你的MacBook P ...

  9. 提高java效率_提高Java编程效率的一个技巧

    我们在用Eclipse等IDE进行Java开发时,对于复制.粘贴等操作,我们最常用的是Ctrl+C和Ctrl+V,甚至是用鼠标右键进行操作.其实效率最高的操作方式应该还是命令行或快捷键操作方式.编程界 ...

最新文章

  1. python模块的导入的两种方式区别详解
  2. 事务超时时间无效_阿里分布式事务组件 fescar/seata 对 XA 2PC 的改进及其设计思想...
  3. 关于2017届学长制作分享软件share(失物招领)的使用体验和需改进的内容
  4. Django - Cookie和Session
  5. HTTPS|SSL笔记-SSL分手过程(Encrypted Alert)
  6. 关于CMS垃圾回收器的几个问题
  7. 【IDEA】IDEA报错 illegal character U+00A0异常解决
  8. 服务器是怎么工作的?(二)——arp工作原理详细解析
  9. 蓝桥杯 ALGO-150 算法训练 6-1 递归求二项式系数值 java版
  10. TCP程序中发送和接收数据
  11. SQL查询语句-返回名称的分类
  12. Word排版的正确姿势!(Word论文排版教学)
  13. html静态资源加载404,spring security访问静态资源文件出现404
  14. 蓝桥杯——六面体染色
  15. 绝对经典的原理定理理论原则效应法则
  16. 北京精雕自定义机床模型仿真
  17. 利用html表单制作个人简历
  18. centos7 安装 nodejs 16
  19. 护眼台灯国家标准是什么?国aa和国a台灯区别大吗
  20. 特斯拉又双叒产量不足,下一个特斯拉还有多远?

热门文章

  1. Net Core下使用RabbitMQ比较完备两种方案(虽然代码有点惨淡,不过我会完善)
  2. CentOS ASP.NET Core Runtime Jexus跨平台布署
  3. 【招聘(北京)】东方国信 工业互联网
  4. 【深圳】掌通宝科技有限公司技术总监(兼架构师),约吗
  5. Entity Framework Core 1.1 升级通告
  6. 【干货】”首个“ .NET Core 验证码组件
  7. django23:BS4/kindeditor上传图片
  8. C#服务器编程:WebService、Ajax与回调函数(一)
  9. C语言试题六十六之请编写函数实现三个数从小到大排序
  10. Android之解决开启热点后跳转页面不稳定问题