记一次播放器页面白屏时间优化方案

2022-03-17
阅读 4 分钟
1.8k
外部进入,包括筛选页进入、分享链接进入、用户详情页进入和页面强制刷新,此时白屏时间可以理解为浏览器输入 url 到播放器播放的时间,主要流程分为四部分:完全白屏,FP(First Paint) 之前流程
封面图

webpack 性能调优报告,极限压缩 monaco 编辑器

2022-03-17
阅读 6 分钟
7.1k
调优成果 优化前优化后优化比例打包体积32.01 MB13.57 MB57.61%Gzip 体积3.37 MB1.47 MB MB56.38%文件数量821976.83%资源压缩服务器 br 压缩客户端 br 压缩1压缩级别611(最高)1构建速度60s +41.1s +31.67%播放页 FP 耗时明显感知无感知1(以上数据来源为本地测试,仅供参考)优化目标降低播放页 FP 耗时减少静态资源请...
封面图

前端性能优化 - 缓存机制和 Service Worker

2022-03-17
阅读 13 分钟
3.9k
PWA(Progressive Web Apps)不是特指某一项技术,而是应用多项技术来改善用户体验的 Web App,为 Web App 提供类似 Native App 的用户体验。其核心技术包括 Web App Manifest,Web Push,Service Worker 和 Cache Api 等,用户体验才是 PWA 的核心。 PWA 主要特点如下:
封面图

二叉树相关 - js描述

2021-07-26
阅读 4 分钟
1.7k
二叉树几乎是面试过程中必问的知识点,大多数描述过程都是通过C、C++、JAVA、python等语言实现,这里用js语言实现下一下类似的功能,前端、nodejs方向和全栈方向的同学可以作为参考。
封面图

手写JS打印(导出pdf)插件

2021-07-14
阅读 6 分钟
3.1k
Vue项目中,有一个打印(导出pdf)需求,于是网上搜寻了几个插件包括vue插件和js插件,要么太重不够轻量级,要么功能不够完善,最终没有一款插件符合要求。 经过搜寻插件和资料的过程,发现打印原理并不难,于是尝试自己写一个插件,效果非常棒,而且非常轻量级。
封面图

全栈岗位面试算法题 - 数字输入框校验

2021-07-13
阅读 4 分钟
1.9k
根据运营需求,你要为我们的数值发布系统增加一项数字输入框校验功能。我们通常会对一些数字输入进行大小限制。 比如要求输入的值必须在300 - 347之间(包括300和347)。聪明的你发现,有时你可以不必等用户输入完就知道他的输入是否非法的了。 比如,上面这种情况,当用户输入37时,肯定他的输入就是非法的了。
封面图

Redis应用实战 - 秒杀场景(Node.js版本)

2021-06-24
阅读 11 分钟
5.3k
公司随着业务量的增加,最近用时几个月时间在项目中全面接入Redis,开发过程中发现市面上缺少具体的实战资料,尤其是在Node.js环境下,能找到的资料要么过于简单入门,要么名不副实,大部分都是属于初级。因此决定把公司这段时间的成果进行分享,会用几篇文章详细介绍Redis的几个使用场景,期望大家一起学习、进步。 下...
封面图

Koa1技术分享

2021-03-31
阅读 11 分钟
1.5k
Koa使用了ES6规范的generator和异步编程是一个更轻量级Web开发的框架,Koa 的先天优势在于 generator。由于是我个人的分享交流,所以Node基础、ES6标准、Web开发基础以及Koa的"Hello World"程序都不在讨论,希望各位小伙伴提出意见和指导。   PS:Koa 内核中没有捆绑任何中间件,但不用担心,Koa 拥有极其强悍的拓展性...
封面图

Node交互式命令行工具开发——自动化文档工具

2021-03-31
阅读 5 分钟
11.2k
nodejs开发命令行工具,流程相对简单,但一套完整的命令行程序开发流程下来,还是需要下点功夫,网上资料大多零散,这篇教程意在整合一下完整的开发流程。  npm上命令行开发相关包很多,例如minimist、optimist、nopt、commander.js、yargs等等,使用方法和效果类似。其中用得比较多的是TJ大神的commander和yargs,本...
封面图

深入剖析let/const在for循环中的作用原理

2021-03-31
阅读 2 分钟
1.7k
快速排序 {代码...} 归并排序 {代码...}
封面图

JS面试题 - 台阶走法和字符串压缩、快速排序和归并排序

2021-03-31
阅读 4 分钟
1.8k
分析:如果字符是数字需要处理,比如aa2222b压缩为a224b,解压的时候就不知道是224个a,还是2个a,4个2或者其他。解决办法,如果是数字,在前面加一个特殊字符标识,同时这个特殊字符也要单独处理(前面加特殊字符是最精简的方法,只需要一个特殊字符,另外对于比较散乱的字符串,也就是单个字符很多的情况,会有很多1,...
封面图

javascript创建4位不重复邀请码思路

2021-03-31
阅读 2 分钟
2.3k
关于随机不重复字符串,如果没有长度限制,那么最简单的方法当前时间戳 + 固定位数随机字符串的形式完全可以满足(仍有概率重复,但几乎可以忽略),至于长度,有很多办法解决,但最终也无法做到很短。
封面图

Promise知识汇总和面试情况

2021-03-23
阅读 12 分钟
4.3k
Javascript异步编程先后经历了四个阶段,分别是Callback阶段,Promise阶段,Generator阶段和Async/Await阶段。Callback很快就被发现存在回调地狱和控制权问题,Promise就是在这个时间出现,用以解决这些问题,Promise并非一个新事务,而是按照一个规范实现的类,这个规范有很多,如 Promise/A,Promise/B,Promise/D 以...
封面图

黄金搭档 -- JS 装饰器(Decorator)与Node.js路由

2019-05-15
阅读 7 分钟
5k
很多面对象语言中都有装饰器(Decorator)函数的概念,Javascript语言的ES7标准中也提及了Decorator,个人认为装饰器是和async/await一样让人兴奋的的变化。正如其“装饰器”的叫法所表达的,他可以对一些对象进行装饰包装然后返回一个被包装过的对象,可以装饰的对象包括:类,属性,方法等。 Node.js目前已经支持了async...