前段时间,用js写了一个自定义的多选控件.完成基本功能之后,花了好几天来优化程序的结构和性能.主要目的是把以前看到的、思考过的东西付诸于实践.读书的时候写的东西多,没耐性看书.后面又变为看的多,反而懒的去写.很明显都是不好的.于是就动手写了写.js部分改的比较多,css目前就没什么动力修了.代码放在了github上Mselect.
####代码优化方面的总结具体如下:
- 循环体内部,interval函数,经常触发的事件中的程序段的性能,要注意。
- 需要性能的地方尽量使用原生操作,但又要考虑浏览器的兼容性问题。
- 要注意JQuery的隐式循环
- 保存对象的属性、外部变量的值、选择器取得的对象,数组的取值,避免多次查找的损耗(IE中属性的访问都可能是个问题)
- 使用createDocumentFragment减少dom操作
- 尽量避免使用jQuery选择器的使用,使用时尽量指定context
- 把处理时间分布开来,使用延迟加载“提高”使用性,预处理操作等
- 有时修改了处理流程,一些需要优化的地方就不再必要了(优化 处理流程)
- 注意消除程序中的重复,提高程序的可读性
- 编程时对象的生命周期要时刻注意,防止内存泄露
不要同时想多种状态的情况,不要钻牛角尖,把流程写下来帮助分析.写的时候浏览器兼容问题也导致可以选择的方案受到了诸多限制.
期间也一直在补充各种知识.一篇总结还是不要写太长了,下回再说.