介绍近期的一些优化细节。图片压缩什么的就不说了,这是优化必须要做的事情。今天我就来说说写代码的时候可以培养的优化细节。不要滥用浮动。不要滥用网络字体。float在渲染时计算量比较大,会脱标、塌陷。我们可以改用弹性布局。网页字体的引入需要大量的消耗,所以最好不要和设计提太多。避免在css中进行多余的样式设置。color、font、line-height等都是可以继承的,所以如果它们的子元素有相同的属性,就得重写,尤其是font-family。可以缓存函数返回值的复杂方法。函数缓存(fn){varcache=Object.create(null);return(functioncachedFn(str){varhit=cache[str];返回命中||(cache[str]=fn(str))})};varfk=function(str){returnstr.charAt(0).toUpperCase()+str.slice(1)}varcacheFk=cached(fk)//1stepcacheFk('ui')//2stepcacheFk('ui')这是我看的时候发现的一段代码vue的源代码。它的作用是缓存一个复杂函数的值。如果参数相同,则不会重新计算。但是这里需要注意的是,这个缓存功能是通过闭包来完成的,所以需要做一些取舍。尽量减少布局。//两次触发布局varnewWidth=Div.offsetWidth+50;Div.style.width=newWidth+'px';varnewHeight=Div.offsetHeight+50;Div.style.height=newHeight+'px';//only触发布局varnewWidth=Div.offsetWidth+50;varnewHeight=Div.offsetHeight+50;Div.style.width=newWidth+'px';Div.style.height=newHeight+'px';所有能触发layout的操作都会被暂时放入layout-queue,当必须更新时,会计算整个queue中所有操作的结果,这样layout只能执行一次,从而提高性能.最好在不影响其他模块的情况下移除动画元素。这也是为了不影响其他元素。变换而不是位置。做一些css位移效果,最好用transform代替positioning。刚开始的时候,我是用position当动画卡片的~~~选择dom元素使用id,但是设置css不要定义id。如果使用id选择器,请不要添加其他类约束。定义过多的id会降低复用性,增加维护难度,所以不建议在css中使用过多的id。多次使用length时,用变量保存。varlen=dom.length;for(vari=0;i
