1.如何发现性能瓶颈,并解决?
性能瓶颈,可以从两个维度去考虑和解决:
①交互设计上:很多情况下,交互设计存在导致页面出现性能瓶颈的问题,在实际应用中,是否可以考虑优化现有交互,比如:列表,是否可以分页?地图撒点,是否可以通过点聚合实现?树形视图,是否可以在交互上懒加载,而不是一次性加载所有?这些类似的场景都不需要直接通过研究底层技术去实现优化,这种方式个人认为是应该优先考虑的。
②技术上:如果已经要考虑这个层面的优化了,证明你已经向产品或者交互妥协,那就专业的研究下在既定场景下,导致性能问题的因素都有哪些?如:加载的资源中重复代码过多,使得文件太大、业务设计不合理导致请求过多、代码编写不规范,造成不必要的浏览器计算,及服务端计算,浪费运行资源、业务代码中关于组件实现上,内部涉及业务的算法上是否有优化的空间、对应用的技术栈理解的不够深入,在使用过程中不合理的运行了一些不必要的框架内部程序,从而导致整个业务单元运行效率降低,从而产生用户可以感知的性能问题。 简而言之:能从交互上下手的就优先考虑,不行,咱们在用技术手段去优化。
2.CDN是如何提升获取资源的速度的?
CDN,指的是内容分发网络,在用户通过客户端请求服务端资源的时候会分配离用户最近的服务节点向用户提供服务,从而尽可能避开影响数据传输速度和稳定性的瓶颈或者环节,从而提升客户端请求资源的速度。