你可能不知道的Ajax

480 阅读2分钟

本来打算水一篇文章,好达到微信的赞赏要求,结果一搜索,发现这一块的知识其实挺多的。不过呢,真人还是来水。因为太多了,写的简单一点,浅显一点,粗制滥造一点。

如今现世

现在,所有的前端开发者,包括“前端吕布”这种水平的人都会用到ajax.

  • 这样用
// Jquery
$.ajax({
    url: './b.json',
    success: function(result){
        /*处理你的result*/
    }
})
  • 或者这样
// axios
axios.get('./a.json').then(function(response){
    /*处理你的response*/
}).catch(function(error){
    /*处理你的错误*/
}),

框架横行的年代,造就的一个结果就是,只知门派,不知招式。所谓的焰分噬浪尺,看起来光影效果十足。实际上,是不是就是个大门板,带点火,对着地上夯。 我相信,可能现在说起来ajax,有的人就会说,我知道,就是axios,就是$.ajax().ok,看完这篇文章,你就已经有了问鼎江湖的机会了。

开天辟地

时间倒回到2005年,一个叫 Jesse James Garrett 的兄弟,发表了一篇在线文章,当年的初始地址已经找不到了,因为那个博客社区被收购了...不过这里有篇 戳这里.告诉各位大兄弟,别人的东西都不可靠,最好刻在石头上,或者龟壳上,这样才会在万年后的考古中看到你的hello world.
他在文章中介绍了一种技术,Asynchronous JavaScript + XML.这一技术能够向服务器请求额外的数据而无须卸载页面。Ajax的核心是XMLHttpRequest对象(简称XHR),有微软首先引入这一特性。虽说微软有很多让人诟病的地方,但是他对于推动技术的发展还是起到了至关重要的作用。
在重命名为Ajax之后,大约在2005年底,2006年初,这种技术红极一时。如今,已经成为一项web开发人员的必备技能。

群魔乱舞

在ajax诞生之后,各大浏览器厂商都推出自己的新特性。就像现在一样,新年新气象,新的特性,新的希望。好像把版本号升一下,就能将市场份额提升一个点一样。
IE5是第一个引入XHR对象的浏览器。然后他就搞出了一些妖蛾子。IE的XHR有3个版本,你要是想适配的话。。。建议辞职。具体的可以看高程3 21章

近古文明

Ajax 使用XHR与服务器进行通信,可以使用json,xml,html,text文本等格式进行通信,它最吸引人的地方,就是它的异步特性。从浏览器内核上来讲,就是将请求响应这部分放到Webcore的network模块去执行,js主线程继续做它自己的事情。 所有的框架,对于ajax,都做了这三件事。
具体的方法参数,以及用法可以查阅文档。

let xhr = new XMLHttpRequest()
// 实例化一个XHR对象
xhr.open()
// 启动一个请求以备发送
xhr.send()
// 发送

现代修真

哎,好像讲到这里就没啥要讲的了。如果再讲的化,就是XHR的使用方法了,还有一些需要注意的事项,跨域啊,安全之类的了。那就不讲了,反正我也要下班了。

如果对您有帮助,欢迎关注真人的公众号