关于此次项目的总结

1、想清楚再写

在开始一个功能/模块之前,要想好思路、结构、如何实现。一般来说,和实际结果都会有差异,这样做的好处是在遇到错误或结果不一致时可以更快地定位问题,可以看看是思路不对还是哪里的代码不对。如果是边写边想,突然发现不对,又改一下,越改越乱,最后自己都不知道为什么要那么写。想清楚再写可以帮助保持头脑清醒,提高效率,不让代码混乱。

2、沟通很重要

理所当然的自以为是有害的,当不确定的时候多问,搞清楚。避免做无用功。

3、注重细节

标签语义化、垂直居中等等。命名很难,不要随便命名。图片名不要用中文。HTML不要用很多空格来分隔。有些图片可以不用png格式就不用,png格式比jpg格式大很多。要具备一点设计知识。对于跨域的地址,用新标签页打开。

4、使用模板ejs

对于相同的部分可以独立出来,在需要的地方引入。大大提高效率。注意变量的初始化,避免报错。

5、图片懒加载

在一个页面中有很多大图片时,需要懒加载来减轻服务器压力。图片懒加载即在用户滚动页面,使得图片到可视区时才加载图片。所有img标签的图片路径src先用另一张图片代替或者不设置。可以用自定义属性保存真正的图片地址。对滚动进行监听。判断图片是否被滑动到可视区范围内,图片进入可视区就对img标签的src属性进行替换。

<img src="bj.jpg" data-src="http://真正的图片地址/xxx.jpg">

6、函数节流

鼠标滚动等事件会在短时间触发多次。使用函数节流,目的是改变绑定事件的处理函数的执行频率。
设置一个延时函数setTimeout,在指定时间间隔内触发事件,会将上一次触发事件的clearTimeout,所以在指定时间间隔内触发多次,只会在最后一次触发事件时执行回调函数。

function throttle(method, context) { clearTimeout(method.tId);
  method.tId = setTimeout(function () { method.call(context);
  }, 350);
}

throttle(myFunction, this);

7、最好不要用透明度实现动画

使用改变元素透明度来隐藏元素在普通元素没有什么问题,但是如果元素是一个可以点击的链接,就会有问题。因为元素还是存在文档流,只是看不见。如果元素重叠就只能点到层级高的元素,这显然不是希望的。应该使用display来实现。

8、注意复用

注意可以复用的function、css 类。马上抽离出来。

9、系统学习

缺乏系统的学习,有时候会不知道某个属性或者方法等,导致使用更复杂的方式实现功能,后面发现又改。