- 主页 > 生活百科 > >
AJAX即“Asynchronous JAVAScript and XML”(非同步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术 。Ajax的概念由杰西·詹姆士·贾瑞特所提出 。
传统的Web应用允许用户端填写表单(form),当送出表单时就向网页伺服器发送一个请求 。伺服器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分html码往往是相同的 。由于每次应用的沟通都需要向伺服器发送请求,应用的回应时间依赖于伺服器的回应时间 。这导致了用户界面的回应比本机应用慢得多 。
与此不同,AJAX应用可以仅向伺服器发送并取回必须的数据,并在客户端采用JavaScript处理来自伺服器的回应 。因为在伺服器和浏览器之间交换的数据大量减少,伺服器回应更快了 。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此Web伺服器的负荷也减少了 。
类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术 。虽然其名称包含XML,但实际上数据格式可以由JSON代替,进一步减少数据量,形成所谓的AJAJ 。而客户端与服务器也并不需要异步 。一些基于AJAX的“派生/合成”式(derivative/composite)的技术也正在出现,如AFLAX 。
20世纪90年代,几乎所有的网站都由HTML页面实现,服务器处理每一个用户请求都需要重新加载网页 。这样的处理方式效率不高 。用户的体验是所有页面都会消失,再重新载入,即使只是一部分页面元素改变也要重新载入整个页面,不仅要刷新改变的部分,连没有变化的部分也要刷新 。这会加重服务器的负担 。
这可以用异步加载来解决 。1995年,JAVA语言的第一版发布,随之发布的的Java Applets(JAVA小程序)首次实现了异步加载 。浏览器通过运行嵌入网页中的Java applets与服务器交换数据,不必刷新网页 。1996年,Internet Explorer将iframe元素加入到HTML,支持局部刷新网页 。
1998年前后,Outlook Web Access小组写成了允许客户端脚本发送HTTP请求(XMLHTTP)的第一个组件 。该组件原属于微软Exchange Server,并且迅速地成为了Internet Explorer 4.0[2]的一部分 。部分观察家认为,Outlook Web Access是第一个应用了Ajax技术的成功的商业应用程序,并成为包括Oddpost的网络邮件产品在内的许多产品的领头羊 。但是,2005年初,许多事件使得Ajax被大众所接受 。google在它著名的交互应用程序中使用了异步通讯,如Google讨论组、Google地图、Google搜索建议、Gmail等 。Ajax这个词由《Ajax: A New Approach to Web Applications》一文所创,该文的迅速流传提高了人们使用该项技术的意识 。另外,对Mozilla/Gecko的支持使得该技术走向成熟,变得更为简单易用 。
【AJAX 简介】
使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据 。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息 。
Ajax不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行 。就像DHTML应用程序那样,Ajax应用程序必须在众多不同的浏览器和平台上经过严格的测试 。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世 。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能 。
对应用Ajax最主要的批评就是,它可能破坏浏览器的后退与加入收藏书签功能 。
在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面 。一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做 。不过开发者已想出了种种办法来解决这个问题,HTML5 之前的方法大多是在用户单击后退按钮访问历史记录时,通过建立或使用一个隐藏的IFRAME来重现页面上的变更 。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态) 。
关于无法将状态加入收藏或书签的问题,HTML5之前的一种方式是使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持追踪,允许用户回到指定的某个应用程序状态 。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点 。)HTML5 以后可以直接操作浏览历史,并以字串形式储存网页状态,将网页加入网页收藏夹或书签时状态会被隐形地保留 。上述两个方法也可以同时解决无法后退的问题 。
推荐阅读
-
唐嫣|出身普通的唐嫣,之所以能成为流量小花,离不开贵人的帮助
-
孤惯|寒流下小鹏汽车再融5亿美元 总融资超160亿都能做啥?
-
-
-
小年吃什么传统食物(农历腊月二十三过小年吃饴糖的由来习俗)
-
楠竹一@7国出兵力挺劲敌,新一轮动武征兆已显现,土耳其这次碰上硬茬了
-
吴琼|吴琼21岁女儿罕露面!个高身材妖娆颜值五官随妈,感情好胜似亲生
-
-
五虎将@端午节皮肤特效曝光,4款皮肤将下架,天美618活动值得期待
-
燕云台:王楚然版玉萧上线,明扆很快宠幸了她,最高兴的人是喜隐
-
历史新高!大丰麋鹿国家级自然保护区今年新生小鹿853头
-
崇祯知道袁崇焕是冤枉的吗?崇祯处死袁崇焕的罪名_8
-
-
@新华国际|日媒:日本两年内未扑灭猪瘟 将影响猪肉出口
-
医学生|医学生就业“两极分化”,几十万年薪仅占极少数,其余的难找工作
-
#态℃#为何中国核酸检测比国外更快?我们医生24小时工作
-
一米健康总监无农残|包子里加了这种就别买了!选对了,才能给全家吃
-
-
搞笑你我她|半路车链子掉了,开心一刻笑话:今天骑着自行车载着女友
-
尼娜|冷?冷?冷? 今年或遇60年极寒冬天?专家告诉你真相