# ajax

  • ajax是针对MVC的编程,不符合当前前端MVVM的趋势
  • 基于原生的XHR开发,XHR本身架构不清晰,现在已经有了fetch的替代方案
  • 使用ajax需要引入jQuery,jQuery很大

# axios

  • 从node.js中创建http请求
  • 支持Promise API
  • 客户端支持放在CSRF
  • 提供了一些并发请求接口

本质

ajax技术实现了网页的局部数据刷新
axios是通过promise实现了对ajax的封装

# promise实现ajax简单封装

const myAjax = function(url) {
    return new Promise((resolve, reject) => {
        let xhr = XMLHttpRequest()      // 实例化
        xhr.open('get', url, true)
        xhr.send()
        xhr.onreadystatechange = function() {
            if(xhr.readyState === 4){
                if(xhr.status === 200){
                    resolve(JSON.parse(xhr.responseText))
                }else {
                    reject('error')
                }   
            }   
        }
    })
}