站内搜索

本次搜索找到结果 5 条

有时候我们希望在浏览器中执行一些低优先级的任务,比如记录统计数据、做一些耗时的数据处理等,暂且将其称为后台任务。这些任务跟动画计算、合成帧、响应用户输入等高优先级的任务共享主线程。我们可能会面临这样的问题:正在执行的后台任务很耗时,会阻塞高优先级任务的执行,出现卡顿或者无响应的情况。

有同学提出建议:把后台任务拆分到最小的可执行块,将其放到间隔极短的setTimeout中异步执行。这样就不会阻塞主线程上其他任务啦。但是不停地将小任务发给事件循环会带来额外开销,而且实现起来也不优雅。

第一次来欧洲,是同事四人出差来里昂参加W3C的TPAC会议。

坐飞机

我们10月19日的凌晨12点半从北京首都国际机场出发,乘坐中国南航与KLM联运的大飞机到达荷兰阿姆斯特丹机场,然后再乘坐KLM的小飞机转机抵达里昂圣修伯利机场。

我们在大飞机上飞了10个小时,飞机提供了枕头和毯子(小枕头好评,救了我的颈椎)。每个座椅背后都有固定的小电视,存储了很多电影和音乐,还能实时查看到当前所在的位置。 睡到北京时间4点的时候,起来上厕所,喝水,看了一部《精灵旅社3》,听着电视里的音乐继续睡觉。庆幸自己带了降噪耳机,因为坐在靠近大涡轮的窗边,噪音特别大。睡觉和看电影的时候戴着耳机感受好很多。

(本文更新时间2018-8-23)

今天给大家介绍一个性能优化利器:Preload。

背景

有时候为了提高网页初始加载的性能,我们会选择延迟一部分资源的加载和执行。

另一种情况是我们想要尽早加载资源,但是要等到合适的时机再执行。时机的影响因素包括依赖关系、执行条件、执行顺序等。

通常的做法是:

  • 通过插入一个页面元素来声明一个资源(比如img、script、link)。这种方式会将资源的加载和执行耦合

  • 用AJAX来加载资源。这种方式只有在时机成熟时才会加载资源,解决了执行时机问题。但是浏览器无法预解析,也就无法提前加载。另外如果页面有大量的阻塞脚本,就会造成延迟

有没有办法既提前加载资源,又能解耦加载和执行呢?这时候就轮到preload大显身手啦。