3、怎么解决Vue首页白屏的问题?
原因:单页面应用,第一次需要把所需要的资源都下载到客户端并解析。
建立请求时间
(1)资源加载问题(加载顺序,资源压缩,合理使用缓存 vue路由懒加载,图片懒加载)
(2)资源解析问题(服务器端渲染,服务器把模板解析好,直接返回一个可以供浏览器加载的数据,减少解析时间)
4、vuejs的Vnode具体是什么,它和真实的node有什么区别,在vue里是怎么工作的?
(1) 虚拟dom,用js描述的dom结构。
(2) vue模板解析成vnode,当页面操作时把新生成的vnode和之前的vnode进行比较(diff),做到只更新修改的dom 而不更新整个dom,提高性能。
5、vuejs Diff算法具体步骤是什么,3.0做了哪些优化,具体算法是什么,这两种算法是原理(不懂)?
1. 判断新老节点是否一致 一直return
2. 判断是否都有子节点 都是文本 替换
3. 判断是否都有子节点 diff (两端比较,找出最长的不等队列比较)
4. 判断新的有子 老的没 给老的加
5. 判断新的没有 老的有 老的删掉
vue 3.0 diff 算法升级
增加动态节点和静态节点的概念 ,跳过静态组件,增加对比效率
6、前端项目性能优化关键点是什么?
(1)减少页面的加载时间
(2)提升用户体验
7、你常用的js设计模式,具体是怎么工作的(回答的是发布订阅),调度中心的作用具体是怎么工作的?
构造函数
工厂模式
单例模式
发布订阅
8、websocket的心跳机制代码怎么写?(卡壳了只记得原理,不记得具体代码)
new WebSocket
onopen
onmessage
onclose
onerror
send
close
监听心跳 定时发送请求,看连接还正常吗。onopen的时候就开始定时器监听。在正常发送的时候清除检测心跳的定时器。
9、https的三次握手和ca证书认证具体是怎么个过程?
客户端请求一次
服务端返回当时是否可以正常连接
开始连接
10、http请求头怎么做性能优化?
11、cookie的domain作用域,cookie的安全性问题怎么防御?
二级域名 可以访问一级域名
二级地址 可以访问一级地址
子可以访问父 父不能访问子,兄弟不可访问
cookies 可以设置成 httponly 不被js读取
设置有效期 及时更新
cookie 加密 不可预测
12、延申到Xss攻击怎么防御?
跨站脚本
保存数据进行编码
cookies 设置成 httponly 和 domain
innerHTML 过滤 标签
13、csrf跨站点请求伪造是什么?怎么防御?
在一个网站 请求另一个网站的接口。
post 请求
操作增加验证码
验证 referer 请求来源地址
增加 token 每个请求都加
vue-router 和 localtion.href 的区别
vue-router 不会跳转页面 重新加载组件,diff 按需加载 异步加载
了解新技术
vue 3.0 的升级
proxy 代替 definePrototy
多个根节点
更好的ts支持
不支持 a.b
es6 的数组方法