2019.1.7号面试准备
1.mvc与mvp与mvvm模式
MVC (应用程序的分层开发)
Model的核心是数据的抽象,Controller是从抽象数据到呈现数据的转化逻辑,View则是单纯的渲染呈现数据完成用户交互。同时Controller还可以由底层到顶层进行更细致的逻辑拆分
react用的就是MVC框架 也就是单向数据流
优点:所有数据变化有迹可循,缺点:代码量大。数据流转过程长
- view层传送指令到controller层
- controller完成业务逻辑,要求Model改变状态
- Model将新的数据发到View层,用户得到反馈
所有通信都是单向
MVP
我们普通写的代码都是mvp模式
特点:操作DOM节点
view收到响应,反馈给p层
p层向m层拿数据
m层返还p层 p层作出逻辑计算反馈给v层
mv层不交流 其余部分通信是双向的
MVVM
vue使用的就是mvvm模式
特点:不造作Dom节点,代码量小。缺点:数据无迹可寻,特别大项目,数据多项改动让人头疼
与mvp的区别就是 p层变成vm层
v层数据的波动,自动反应在vm层,从而引起m层数据变化 反之依然
vm层由vue实现 主要是dom复用和es5中一个api object.defindproper()
2.单页应用与多页应用的区别
多页应用:
优点:对SEO搜索引擎比较友好,首屏请求快
缺点:页面切换慢(每次切换页面要http请求服务器)
单页应用:
缺点:对SEO不友好。首页请求慢
优点:页面切换快 // 解决方案 ssr服务器端渲染
3.传统http请求与ajax请求的区别
http请求
传统的请求发出者是一个页面,浏览器接受到服务器的响应后要刷新整个页面
(即使是页面中一小部分需要更新),并且,发出请求的那个页面同时会处于
不可用状态,等待数据刷新。
ajax请求
ajax的异步请求的发起者是页面中的一个httprequest对象(可以是页面中任何元素),
页面本身的显示和操作在请求和接受数据的过程中不受到影响。浏览器接收到服务
器的响应后传递给对应的处理函数,由函数决定做什么
是什么:
是一种运用于浏览器的技术,它可以在浏览器与服务器之间使用异步通信机制进行数据通信,
从而允许浏览器向服务器获取少量信息而不是刷新整个页面。
是一种发送http请求的一种方式
两者本质区别:
1.
- AJAX通过xmlHttpRequest对象请求服务器服务器接受请求返数据实现刷新交互
- 普通http请求通过httpRequest对象请求服务器接受请求返数据需要页面刷新
2.
ajax非阻塞异步,页面在请求过程中处于可操作状态