加载jQuery
我觉得加载jQuery这个在很多小型网站,或者做外包的话就没有必要放到CDN,我主要考虑的因素是加载的文件是否多,服务器速度,以及面向的用户群体。而且放到CDN上面,有时候你不会知道cdn上的版本是否更新了,存在不稳定因素。而且现在还有很多站点需要兼容ie8-,所以选择固定的jQuery1.8.0可以判断出浏览器版本;
- 将jQuery和页面用到的js文件尽量全部放在</body>之前;
- 根据实际境况和业务需要选择引用jQuery的方式,CDN or 本地服务器;
- 需要兼容ie8+的话选择jQuery v1.8.3 ,如果不需要考虑兼容性就放心的使用2.0+版本吧
- 使用$(function(){页面所有需要用到的js,除组件外});
变量
- jQuery变量最好加一个$前缀;
- 将经常用到的jQuery变量存储起来以方便重用;
- 使用驼峰命名;
- ID父亲容器下面再查找子元素请用.find()方法。这样做快的原因是通过id选择元素不会使用Sizzle引擎;//这个没有亲测,不过貌似无法反驳~
- 指定上下文;
- 不要用*选择器,尽量多用children(),find()等;
- 多使用IIFE ,匿名函数自调用,避免变量污染;
var $box = $(".box"); //2.将选择的dom存到变量里面
$('.class', '#sasasasa'); //5.在指定的id下选择
DOM操作相关
- 不要处理不存在的元素,尽量先判断是否存在在操作;
- 在执行动画时候先stop()再开始;
- 尽量避免 少创建对象,多利用data-属性来存取对象;对象只创建一次或者初始化一次;
- 多使用链式调用,特别的给自定义的函数如果不需要返回值也加上this,方便链式调用;
事件相关
- 可以尽量使用声明的函数作为回调函数;
-
不要把绑定事件写在html脚本里面,结构与行为分离;
-
多给绑定事件使用命名空间;
function init(){};
$('.box').on('click', init);//1.重用高
$('.box').on('click.cinit', init); //3.用.来区分
暂时这么多,后面再慢慢完善和补充
网友评论