图片
最好一种类型的背景图片可以放在一个png里面,且该图片不用repeat,使用background-position来展示,比如左右箭头(可点击与不可点击)
全局性的图片,比如loading图,背景图等可以在用户登录页面预先加载,提高用户体验。
页面布局
酌情考虑是用table还是ul还是div,且在定宽之前要以需显示最多字符的情况为参考
要注意的是在EDM(电子邮件营销)里面的内容最好采用table的方式,具体原因和EDM的详细情况会另外写一篇
文件上传
需要在配置里面加上
<result name="success" type="json"> <param name="contentType">text/html</param> </result>
否则IE下会将返回的data当做文件来下载,前提是使用json格式返回的数据
文件下载
如果不是使用window.location.href的方式下载文件,那么在使用form插件时要加jframe:true
但是加了这个之后action无法进入success方法,会canceled掉
JS
样式的改变用addClass和removeClass,少用级联样式形式
尽可能用html()替代append(),prev()等插入操作
选择器多使用ID而不是class,或者在选择器之前加上ID等减少遍历次数,$(‘#div’).find(‘.a’)的效率高于$(‘#div .a’).jquery查找节点是从右往左查找,会先查找‘.a’再判断’.a’是否有’#div’节点。
对于一些公共的方法或者组件,可以将属于同一种类型的方法封装为一个util对象,内部引用通过this.XXX()
外部引用通过utilxxxx.xxxx().同时要注意JS对于私有方法也有规范,通常为方法名前加_。
提高jQuery效率: http://www.jb51.net/article/24740.htm
在循环中使用i<length时,length使用变量缓存下来,否则每次判断都会获取一次数组的length
JSON
后台返回的json如果使用Integer型的值为json对象的属性,会出错,即这种形式{Integer(Key):Value}
调试
通过.click .hover .focus等绑定的事件可以通过$(obj).data(‘events’)[‘click…’][0].handler查看具体的JS代码,通过.bind(),.live()等绑定的方法不能直接查看