1.sop 同源策略机制
指浏览器的当前页面与接口两方必须同协议,同域名,同端口。有一个不相同都会受到浏览器的约束。
在部分场景中,我们为了避免性能,需要请求不同接口资源,此为跨域。
2.跨域
解决1.jsonp 通过script标签进行请求 但只能为get
解决2.cors 让接口资源进行授权,在接口资源处添加对应响应头Access-Control-Allow-Origin:'*'
解决3.proxy 代理 将请求发送到自己的服务器 由服务器请求接口
3.浏览器缓存
为了减少消耗不必要的性能资源,减少加载时间,提高用户体验。
1.强缓存
客户端第二次请求相同资源时,不会再次请求而是直接从内存/硬盘取出。
2.协商缓存
二次请求时,向服务器询问是否更改本地缓存,如果不更改则读取,更改则更新。
4.haslayout
是Windows Internet explorer渲染引擎的一个组成部分
常见属性 min-height系列,overflow-x,overflow-y,overflow,position:fixed
6.浏览器模式
标准模式 按照w3c规定的语法渲染 显示网页
怪异模式 按照浏览器自己的方式加载
不同浏览器的加载方式不同
7.前端安全问题
1.跨站脚本 /XSS类攻击 在网站本身注入恶意脚本
2.iframe的滥用
3.跨站请求伪造 /CSRF攻击 诱导用户进入第三方网站 通过获取登录状态冒充用户
4.恶意第三方库
8.网络劫持
1.DNS劫持 如去京东强制到淘宝 违法
强制劫持. 通过修改运营商本地的dns记录 引导用户流量到缓存服务器
302跳转. 通过监控网络流量来判断哪些内容可劫持,再发起302跳转引导流量。
2.http劫持 访问谷歌但有一刀999的广告
通常是运营商修改http响应内容 因为http明文传输
解决 推荐使用https
9.浏览器多个标签页通信
1.websocket协议 标签页的信息 由服务器推送到另一个页面
2.sharrWorker 共享线程
3.localStorage/postMessage
10.缓存过程
请求资源并缓存-强缓存命中-若强缓存资源过期(即没命中强缓存)则协商缓存
11.刷新区别
1.点击刷新 浏览器直接对本地的缓存文件过期
2.ctrl f5 缓存不会过期
3.地址栏回车 正常流程 本地检查是否过期 服务器检查新鲜度 最后返回内容
12.localStorage与sessionStorage
他们都是本地存储 都有同源策略限制
但sessionStorage只能同一浏览器的同一窗口下共享 关闭标签页后销毁
13.宏任务 微任务
红任务: promise回调,nextTick
微任务: setTimeout setInterval等定时事件
14.内存泄露
1.使用未声明的变量而创建了全局变量 导致这个变量无法被回收
2.设置了定时任务而忘记取消
3.不合理的闭包
4.获取一个dom元素 后元素被删除 但我们保留了引用 因此该dom也无法被回收