快速响应的ui

用户会本能的去重复尝试那些没有带来明显变化的行为,所以确保web快速响应式一个非常重要的性能关注点

1 .ui线程的工作基于一个简单的队列系统,任务会被保存到队列直到进程空闲。一旦空闲,队列中的下一个任务就被重新提取出来并运行,这些任务可以是js代码,可以是ui更新。值得注意的是每一次的输入都会导致一个或多个任务被加入队列
2 .浏览器限制:浏览器会限制js任务的运行时间。确保某些恶意代码不能通过用不停止的密集操作锁住浏览器或者计算机。
3 .限制所有的js任务在100毫秒或者更短的时间内完成避免给用户带来不适

使用定时器让出时间片段

1 .尽管你尽了最大的努力,但是难免有一些复杂的js任务不能再100ms或者更短的时间内完成,这个时候,最理想的方法就是让出UI线程的控制权,使得UI可以更新。让出控制权意味着停止执行js,使ui线程有机会更新,然后在继续执行js
2 .定时器会让js代码整体性能发生翻天覆地的变化,但是过度的使用也会对性能造成负面影响。
3 .一个时间端只能有一个定时器存在,只有当这个定时器结束的时候才会创建一个新的。

web worker

1 .适合处理那些纯数据,和浏览器ui无关的长时间运行的脚本

你可能感兴趣的:(快速响应的ui)