性能优化(5)-懒执行

场景描述

简单来说,懒执行(Lazy Execution)就是将某些逻辑延迟到使用时再计算。

该技术可以用于首屏优化,对于某些耗时逻辑并不需要在首屏就使用的,就可以使用懒执行。懒执行需要唤醒,一般可以通过定时器或者事件的调用来唤醒。

通用方案

某一业务功能如果被设置了懒执行,则需要满足特定条件后该功能才会被初始化(唤醒)。

因此,从触发(唤醒)方式上来看,懒执行的通用方案可以大致上分为两个思路:自动唤醒和手动唤醒

自动唤醒

  • 自动唤醒的核心思想是轮询,实现方法则是依靠 setInterval() 方法。
  • 首先需要定义判断条件 A,作为某些耗时逻辑的唤醒值。
  • 其次,声明一个监听函数 monitor() 作为 setInterval() 的回调函数,其基本思想是根据唤醒条件 A 的满足与否来决定是否执行唤醒动作:若是则唤醒,并 clearInterval 跳出轮询,否则继续轮询,直到条件满足。

从上述分析来看,自动唤醒的方案需要轮询作为支撑,本身占用一定资源。因此自动唤醒应当被用于大型逻辑模块的懒执行方案中,否则有可能在性能上会得不偿失。

手动唤醒

  • 手动唤醒主要应用于页面的交互场景下,也就是通过监听用户在页面内的 clickhoverscroll 等基本交互行为来触发唤醒动作。

手动唤醒无需设置唤醒条件,也就不需要定义轮询函数来监听,完全由用户手动控制某些耗时逻辑的触发,更加节省资源。因此中小型模块的懒执行方案可以选用手动唤醒方案。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值