`
txf2004
  • 浏览: 6888706 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多
Ajax這個名詞是由 Jesse James Garrett 提出,在他發表的 Ajax: A New Approach to Web Applications 這篇文章中談到 Google Suggest Google Maps 所使用到的技術,是他們在 Adaptive Path 中稱之為Ajax的新方法:
Google Suggest and Google Maps are two examples of a new approach to web applications that we at Adaptive Path have been calling Ajax. The name is shorthand for Asynchronous JavaScript + XML, and it represents a fundamental shift in what’s possible on the Web.


在文中指出,Ajax是Asynchronous JavaScript + XML的簡稱,這指出了Ajax的核心觀念(Asynchronous)與所使用到的主要兩個技術(JavaScript、XML)。

Asynchronous為非同步,要了解Ajax,必須先了解為何要非同步。

現在許多的應用程式都是在Web上展現,這託了網際網路的普及之福,然而網路當初是Web應用程式繁榮的舞台,現在卻也成了限制Web應用程式發展的因素。

限制的原因來自於網路延遲的不可確定性,網路連線其實是個很耗資源的行為,程式必須序列化、通訊協定溝通、實體路由傳送等動作,這些動作都很耗時間與資源,所有透過網路必需的額外操作,常足以拖慢一個系統,就Web應用程式而言,通常只能透過表單進行資料提交,在同步的情況下,使用者送出表單之後,就只能等待遠端伺服器回應,在這段時間內,使用者無法作進一步的操作。

上圖中陰影部份為送出表單之後,使用者必須等待的時間,瀏覽器預設是使用同步的方式送出請求並等待回應,這也可以想像成存取一個很慢的硬碟,如果這是桌面應用程式,您就可以想像這種等待有多枯燥,人們之所以可以忍受Web應用程式的這種等待,某些原因是因為無從選擇而習慣了。

如果可以把請求與回應改為非同步進行,也就是發出請求後,瀏覽器無需苦等伺服器的回應,而可以讓使用者對瀏覽器中的Web應用程式進行其它的操作,當伺服器終於處理完請求並送出回應,而電腦接收到回應時,再回過頭來呼叫瀏覽器所設定的對應動作進行處理。

現在的問題是,誰來發送非同步請求,事實上有幾種解決方案,在Ajax這個名詞被提出之前,早就有著用IFrame的方式,也就是在HTML頁面中內嵌另一個HTML頁面,由內嵌的頁面來發出請求,而外圍的HTML頁面還是可以繼續讓使用者進行操作,有時候IFrame的解決方式會是簡單的,甚至比較好的。

不過現在談到Ajax,都著重在 XMLHttpRequest 物件,您可以使用JavaScript來建立,其實Firefox、NetScape、Safari、Opera中才叫XMLHttpRequest, Internet Explorer中是Microsoft.XMLHTTP或Msxml2.XMLHTTP的ActiveX物件,不過IE7中也正名為 XMLHttpRequest。

Ajax應用程式是必須由客戶端、伺服端一同合作的應用程式,JavaScript是用來撰寫Ajax應用程式客戶端的語言,XML則是請求時或回應時,建議使用的交換資料格式,Ajax的客戶端與伺服端基本上是可以獨立開發的,只要協議好溝通的資料格式,伺服端不限於使用何種技術。

分享到:
评论

相关推荐

    ajax面试题ajax面试题

    关于Ajax的常见面试题 1,Ajax和javascript的区别? javascript是一种在浏览器端执行的脚本语言,Ajax是一种创建交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。 Javascript是由...

    ASP.NET AJAX程序设计——第I卷:服务器端ASP.NET 2.0 AJAX Extensions与ASP.NET AJAX Control Toolkit 源代码

    本卷从最易于理解和使用的那部分入手,介绍ASP.NET AJAX框架中能够与传统ASP.NET无缝对接的服务器端部分,包括服务器端ASP.NET AJAX Extensions与ASP.NET AJAX Control Toolkit。这部分内容不需要读者有任何的客户端...

    实例详解Android Webview拦截ajax请求

    Android Webview虽然提供了页面加载及资源请求的钩子,但是对于h5的ajax请求并没有提供干涉的接口,这意味着我们不能在webview中干涉javascript发起的http请求,而有时候我们确实需要能够截获ajax请求并实现一些功能...

    ajax快速解决参数过长无法提交成功的问题

    在ajax中使用post方法,用常规的参数格式:param1=a1&param2=a2 ,当参数长度过长时,依然提交不成功。比如我们经常这样写一个ajax的post请求: $.ajax({ type: "post", // post or get contentType:"application...

    ajax控件ajax控件ajax控件ajax控件

    ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    ajax ajax原理 ajax代码 ajax编程 ajax学习

    ajax特效ajax特效ajax特效

    ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效ajax特效

    Ajax(Ajax使用js包)

    使用Ajax实现从服务器读取数据,包括Ajax实现的详细步骤

    ajax 基础教程源代码

    ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础教程源代码ajax 基础...

    asp版ajax用户注册 ajax 注册程序 asp版 ajax

    学习的网上的一个ajax版注册程序,对界面进行了改变!是适合学习ajax的朋友的一个好的例子!

    掌握Ajax 学习资料pdf

    掌握 Ajax第 1 部分-Ajax 简介 掌握 Ajax第 2 部分-使用 JavaScript 和 Ajax 发出异步请求 掌握 Ajax第 3 部分-Ajax 中的高级请求和响应 掌握 Ajax第 4 部分-利用 DOM 进行 Web 响应 掌握 Ajax第 5 部分-操纵 DOM ...

    ajax控件ajax控件

    ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件ajax控件...

    完全手册ASP.NET AJAX实用开发详解 源码

    并应用上述知识开发了8个基于AJAX的Web应用系统,如基于AJAX的文件和图像处理、AJAX祝福墙、AJAX留言簿、AJAX聊天室、AJAX RSS阅读器、AJAX相册、基于AJAX的电子邮件处理等。最后以两个大型的AJAX Web应用系统(基于...

    Java Ajax分页,jsp ajax分页

    Ajax + JavaScript + MySQL 实现的Ajax分页功能

    Ajax Ajax本质 Ajax本质源码

    Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码 Ajax Ajax本质 Ajax本质源码

    AJax详解.chm

    第 1 部分:Ajax 简介 第 2 部分:: 使用 JavaScript 和 Ajax 发出异步请求 第 3 部分: Ajax 中的高级请求和响应 第 4 部分: 利用 DOM 进行 Web 响应 第 5 部分: 操纵 DOM 第 6 部分: 建立基于 DOM 的 Web 应用程序 第...

    ajax例子ajax例子

    ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子ajax例子

    ajax 分页ajax 分页ajax 分页

    ajax 分页ajax 分页ajax 分页

    支持AJAX的TreeView树例子,使用省市县三级xml作演示

    看到网上很多想用ajax的树的例子,很奇怪,明明TreeView自带AJAX功能,取非要自己去写一大堆代码, 工作量增加了,而性能又没有提高多少 正好自己这次用到了,就做了一个例子,供大家一起研究参考 注:顺便下载了一...

    ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解ajax详解

    ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解 ajax详解ajax详解ajax详解

Global site tag (gtag.js) - Google Analytics