ajax和axios区别
1、理论差异
axios是通过Promise完成对ajax技术的一种封装,就像jquery对ajax的封装一样。ajax技术完成了部分数据的刷新,axios完成了对ajax的封装;
axios是ajax,ajax不止axios;axios有的ajax都有,ajax有的axios不一定有。
2、逻辑差异
ajax:ajax自身是针对MVC的编程。
最典型的MVC便是jsp+servlet+javabean形式:
JavaBean作为模型,既可以作为数据模型来封装事务数据,又可以作为事务逻辑模型来包括使用的事务操作。
JSP作为表现层,担任供给页面为用户展示数据,供给相应的表单(Form)来用于用户的恳求,并向控制器发出恳求来恳求模型进行更新。
Serlvet作为控制器,用来接收用户提交的恳求,然后获取恳求中的数据,将之转换为事务模型需求的数据模型,然后调用事务模型相应的事务方法进行更新,一起依据事务履行成果来选择要回来的视图。
axios:axios契合现在前端MVVM的浪潮。
ViewModel层,它就像是一个中转站,担任转换Model中的数据目标,该层向上与视图层进行双向数据绑定,向下与Model层通过接口恳求进行数据交互,起呈上启下作用。
View层展示的不是Model层的数据,而是ViewModel的数据,由ViewModel担任与Model层交互,这就完全解耦了View层和Model层。
ajax被什么代替了
现在JQuery之遍及乃至让微软在新建MVC项目的时分,都把JQuery库放在项目中了,而很多初学者一上来做Ajax开发的时分榜首接触的必是JQuery,从前听有人说过,结构会使程序员变笨?权且打个问号吧,我个人而言,凡学东西,必定要深入其内部原理才能得到进步、学得通晓,不然,你便是一流水线上的代码农民工,所以,本文章将演示不必JQuery,运用Javascript来完成Ajax功用。
什么是Ajax
咱们要运用某些技能来完成一些功用的时分,必然要了解这项技能,Ajax这东西其实不是新技能,而是整个多项web开发技能而成的,Ajax(AsynchronousJavaScriptandXML)即异步Javascript和XML,指一种创立交互式运用的网页开发技能有机的运用一系列相关的技能:
(1)Web标准XHTML+CSS的表明;
(2)运用DOM进行动态显示及交互;
(3)运用XML和XSLT进行数据交换和相关操作;
(4)运用XMLHttpRequest(异步目标)进行异步数据查询、检索;
一般网页恳求方法和Ajax恳求方法的差异
咱们简单了解到Ajax是怎么一回事之后,那为什么要运用Ajax呢?与一般网页的恳求方法又什么差异呢?且看下面两张图片:
榜首张图片是咱们一般网页恳求的方法,可见,当咱们点击网页上的按钮、或者其他方法恳求到服务器的时分,在客户端浏览器这边是处于空白不可操作的状态,由于浏览器要忙着帮咱们恳求服务器啊,所以,这会让用户很不好的用户体验了,咱们再来看看Ajax恳求的效果图,咱们发现,以Ajax恳求方法在客户端浏览器这边会有一个异步目标(XMLHttpRequest)帮咱们做恳求服务器的作业,至于用户仍然能够操作浏览器。
咱们来一个比喻吧:当你在宿舍打Dota的时分,你肚子饿了,假如以一般网页恳求的方法是,你跑去饭堂吃饭,所以这盘游戏就间断在这里了,假如以Ajax的方法去打饭呢?你就需要一个异步目标XMLHttpRequest,你宿舍的同学便是这个异步目标了,你呼喊他去饭堂帮你打饭,但是你仍然能够持续你的Dota战争。PS:我不会Dota!!
一般网页恳求形式是由浏览器恳求服务器,所以当恳求过程服务器处理的时分,浏览器这边无法进行其他操作,页面是刷新一次的,而运用Ajax,则将跟服务器打交道的工作交给了Ajax引擎,浏览器与用户交互不受影响!