8.27面试总结

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在回退可能会造成表单重复提交,有害。

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为负的元素自身高度一半

8.27面试总结

上一篇:《C++代码设计与重用》——1.5 这本书能给我们带来什么


下一篇:阿里云容器服务新增支持Kubernetes编排系统,性能重大提升