ajax是什么
2005年,Jesse James Garrett写了一篇文章,里面造了个词叫Ajax。他不是发明了什么新技术,只是给一堆已有技术起了个名字。当时Gmail和Google Maps已经跑起来了,用户发现这些网页怪得很——点一下地图,地图动了,页面没刷新。这在当时是件新鲜事。 Ajax的全称是Asynchronous JavaScript and XML。直译过来就是:异步的JavaScript和XML。名字里每个词都对应一样东西,但真正干活的核心是第一个词——异步。 传统网页的运作方式很笨。你在搜索框里敲几个字,点“搜索”,浏览器把整个页面打包发给服务器,服务器处理完再把整个新页面传回来。哪怕只有一小块内容变了,整页也得重新加载。白屏闪一下,滚动条跳回顶部,你刚才填的表单可能全没了。 这种模式叫“请求-响应”同步模式。用户发起请求,然后就得等着。等多久取决于网速和服务器,但体验上就是:卡住了。 Ajax能成立,靠的是浏览器里一个叫XMLHttpRequest的对象。这东西最早是微软在IE5里搞出来的,后来其他浏览器也跟上了。它的本事是:让JavaScript在后台偷偷跟服务器通信,不影响当前页面。 举个具体场景。你在一个电商网站搜“机械键盘”,刚打完“机械”两个字,下拉框里就冒出一堆建议词。这个过程就是:键盘每输入一个字符,JavaScript就创建一个XMLHttpRequest,把“机械”发给服务器,服务器返回一串建议,JavaScript拿到数据后直接更新下拉框。整个过程中,页面纹丝不动,你甚至没意识到背后发生了五六次请求。 数据格式方面,名字里虽然有XML,但实际用起来,JSON早就把XML挤到一边了。JSON更轻、解析更快、写起来也顺手。现在说Ajax,基本等于说“用JavaScript异步拿JSON数据然后更新页面”。 Ajax带来的变化不是技术层面的,是体验层面的。网页从“文档”变成了“应用”。 以前做一个在线表格,每改一个单元格就得提交一次,页面刷新一次。用了Ajax之后,改完直接后台保存,用户根本感觉不到提交动作。Google Docs能成为第一个真正可用的在线文档工具,靠的就是这个。 再比如社交媒体的“点赞”。你点一下心形图标,数字从42变成43,图标变红。没有页面跳转,没有加载动画。背后是一个POST请求悄悄发出去,服务器更新数据库,返回成功状态。如果网络断了,前端还会把点赞状态回滚,提示你“操作失败”。这些细节全是Ajax在撑。 现在你打开任何一个现代网站,Ajax无处不在。但它已经不怎么被单独提起了。因为fetch API取代了XMLHttpRequest,axios之类的库把请求封装得更简单,前端框架(React、Vue)把数据更新和视图渲染绑在一起。你写代码的时候可能压根不会想“我在用Ajax”,但实际上每一条异步请求都是。 有个细节挺有意思:Ajax刚出来那几年,开发者得手动处理浏览器兼容性。IE用ActiveXObject,Firefox用XMLHttpRequest,代码里得写if-else判断。现在fetch一句就搞定,浏览器自己处理底层差异。技术变简单了,存在感反而变低了。 回头看,Ajax不是什么颠覆性发明。它只是把几个现成的东西拼在一起,然后整个Web的交互方式就变了。有时候技术演进就是这样——不是造出新零件,而是找到新组合。没有Ajax之前,网页是怎么活的
XMLHttpRequest才是幕后干活的人
它改变了什么
今天的Ajax藏在哪
-
上一篇
-
下一篇
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-