框架和库的区别??
框架是一套完整的解决方案,对项目的侵入性比较大,如果中途想更换框架,必须对整个项目进行重构
库提供某个小的功能,如果某个库无法完成所需功能,可以更换其他的库
前端性能优化
从三个方面考虑性能优化, 1:减少请求资源。
合并一部分图片,使用vue 的webpack 里面可以设置图片的压缩和设置某些图片小于某个大小直接转成base64 压缩代码
2:更快的请求速度。
使用cdn加速
使用缓存
3:页面的流畅度。
优化首屏加载,
4,vue 项目中的优化使用过的方法, 组件按需加载,
webpack 设置代码分块
跨域问题
由于浏览器的同源策略,协议,域名,端口号不通,都会出现跨域的想象,
解决方法: JSONP,CROS, 代理
http 1.0 和 1.1的区别
1.1 新增了缓存 Etag if-match if-none-match 长链接:connetion:keep-alive ;解决了1.0 解决了多次发送一个请求的问题
apply call bind 的区别,
apply 第二个参数是数组列表
call 和 bind 第二个参数是一个list
bind 修改this指向不会直接调用,因为它返回了一个新的函数
重绘和回流
什么时候发生回流??
1、添加或删除元素
2、元素位置和尺寸发生变化
3、元素内容发生变化
4、放大或缩小浏览器窗口
什么时候发生吗回流
1、 元素颜色发生变化
2、visibility样式变化
如何避免发生重绘和回流?
1、避免使用table布局
2、复杂动画的元素设置position: absolute 或者fixed
3、不要频繁操作style样式,可以设置一个class 设置玩样式后添加给元素
3、不要频繁操作dom, 可以设置一个dom节点进行完操作之后在添加到页面上
xss 跨站脚本攻击
攻击者会在客户端注入恶意代码, 这些代码会修改客户端页面,当用户访问页面的时候,或者点击连接,会获取用户的隐私信息。
包括反射型, 存储型, 和Dom型 反射型是将恶意代码注如到页面中蝇虎访问时,弹出广告或者重定向连接 存储型一般在客户端的输入框中出现,如在搜索和评论中,如果攻击者输入了恶意的代码,当再次访问这个页面的时候,就会执行评论的恶意代码
如何防止xss 攻击 设置HttpOnly 防止劫取 Cookie,输入检查
vue 强制刷新组件
this.$forceUpdate() 可以刷新当前组件
还可以使用v-if 或者设置:key属性并修改key的值