1.get和post区别
(1) get的参数接在url之后,是暴露的,比如在登录时,暴露出用户名密码,是不安全的;post的参数放在请求包中,更安全
(2)get请求时,不同浏览器对url有长度要求,由于get请求的参数也在url中,因此get能传输的数据量是有限的;post请求传递的数据理论上不受限,但实际中各个服务器也会对其进行限制。
(3)post的安全性比get高。
(4)两者只是发送机制不同,但实际上都是请求,get是向服务端发送索取数据的请求,post是向服务端提交数据的请求。
(5)get只允许ASCII字符,post无限制。
(6)get在回退等操作时,是无害的,post在回退可能会造成表单重复提交,有害。
(7)GET请求可被缓存,get请求保留在浏览器历史记录中,get请求可以被收藏为书签。post请求相反。
2.cookie和session区别
(1)存储地址:cookie存储在浏览器中,session存储在服务器中。
(2)cookie以明文方式存储,不安全,session存在服务器中,更安全。
(3)声明周期不同。cookie从创建开始就计时,时间到了,生命周期就结束了。session从创建开始计时,如果中途有使用到,则重新计时,如果时间到了还没使用,则自动销毁。关机时session生命周期结束,但是对cookie无影响。
(4)cookie多个用户浏览器共享,session只服务一个用户。
3.制作一个倒计时
构想页面:展示固定格式的数字
实现方法:设定未来某刻,从本机获取现在的时间,设置定时器,每隔多久计算一次差,并将数据更新到页面上。
4.动画
transition:渐变 duration-需要的时间 delay-延迟 property-需要变化的css属性 timing-function 完成动画的速度曲线
transform:2D/3D 旋转rotate、缩放scale、倾斜、移动translate
animation:自定义动画 name:需要绑定到选择器的keyframe名称 duration-需要的时间 delay-延迟 @keyframe name {0% 50% 100%}
5.状态码
2** 成功且被处理 4** 客户端错误,请求包含语法错误或无法完成 5** 服务器错误
- 200 - 请求成功
- 401 - 请求要求用户的身份认证
- 404 - 请求的资源(网页等)不存在
- 500 - 内部服务器错误
6.js优化
减少cookie传输:如访问一些图片等静态文件时,不需要验证cookie,可以将这些内容放在一个新的独立域名中进行请求。以此来达到减少cookie传输的次数。
压缩文件:压缩如css/js等内容,减小传输的数据量。
合并css图:如一些小图标可以集合放在一张大图上,请求一张大图即可。
css放在顶部,js放在底部:让浏览器尽快下载css并开始渲染页面。
减少作用域链的查找。比如要在某个循环方法中使用全局变量时,可以在该方法中将全局变量赋值给一个函数内部的局部变量,再进行循环,这样减少了该全局变量的访问次数,即减少了顺着作用域链查找的次数,提高效率。
数据访问:减少对对象和数组的深度查找。当对对象和数组成员的访问次数较多时,建议将数据放入局部变量中,因为对他们的访问需要更大的开销,且对局部变量的访问速度是最快的。
少用全局变量;
双层for循环时,先计算length,再将length放入循环语句中,避免循环一次,计算一次目标数据长度。
使用switch代替if-else
尽量使用原生方法。
使用innerHTML代替DOM操作 eg: dom.createElement('div')
7.垂直居中的方式:
在inline-block的情况下,可以使用vertical-align:middle
父元素 display: table 子元素:display:table-cell vertical-align:middle
绝对定位:top为50%,margin-top为负的元素自身高度一半