Nos*_*dna 18
英文粗略的想法:
你有一个网页.某些事件(可能是按钮按下或其他形式事件,或只是由计时器触发的事件)发生并触发JavaScript代码,要求服务器提供新信息(如GOOG股票的最新价值).
服务器上有一段代码,用于收集您传递的信息并发回一些信息.这与服务器通常具有的页面服务作业不同.
当服务器应答时,将使用服务器中的信息调用回调函数(您在对服务器的JavaScript调用中指定的函数).您的JavaScript代码使用信息更新某些内容 - 例如GOOG股票图表.
RSo*_*erg 15
不要与清洁工混淆,技术术语 AJAX 真正描述了一个框架,或者更好地说明了使用XML和JavaScript对服务器端代码进行异步调用的技术......
虽然上面的许多示例都显示了如何创建所有XML Request对象,但如果您从Microsoft查看ASP.NET应用程序或jQuery的AJAX Control Toolkit,您会发现这些更容易使用.
jQuery Sample(来自jQuery站点):
当命中代码时,some.php文件被命中传递名称和位置值.
<script type="javascript">
function saveDataAjax(){
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
}
</script>
<input type="submit" onClick="saveDataAjax();" value="submit" />
Run Code Online (Sandbox Code Playgroud)
这是一个流行语,它的本质是:
使用Javascript发出异步HTTP请求(在后台).
当内容到达时,采取动作,通常执行一些逻辑,然后通过操纵DOM树来更新页面的外观; 意思是,插入新的HTML元素,删除一些html元素等.
AJAX中的X代表XML,但它无关紧要.XML只是格式化服务器发送的数据的众多方法之一.JSON是一个更好的选择(IMNSHO).此外,服务器可以发送纯文本或只是常规的HTML.
这里的关键字是异步请求.在后台发生的请求,浏览器不必重新加载页面.
最常见的是,它指的是在浏览器中通过JavaScript*使用XMLHttpRequest对象.
根据您的要求,它可以用于描述几乎任何类型的客户端/服务器通过HTTP进行通信,而不仅仅是在浏览器中键入URL.
*jQuery提供了一些很好的包装代码来处理跨浏览器的差异等.
从Pragmatic Ajax书中:
什么是Ajax?
阿贾克斯是一个辛辣的野兽,可以提炼成一个单行.它之所以如此艰难,是因为它有两个方面:
- Ajax可以被视为一组技术.
- Ajax可以被视为一种架构.
Ajax:异步JavaScript和XML
Ajax这个名字来源于其支持技术的捆绑:浏览器和服务器之间的异步通信通道,JavaScript和XML.当它被定义时,它被设想如下:
- 使用XHTML和CSS的基于标准的演示
- 使用浏览器的DocumentObject Model(DOM)进行动态显示和交互
- 使用XML和XSLT进行数据交换和操作
- 使用XMLHttpRequest或XMLHTTP(来自Microsoft)进行异步数据检索
- JavaScript一起绑定所有内容
尽管使用这些支持技术进行开发是很常见的,但它很快就会变得比奖励更麻烦.
正是出于这些原因,对Ajax更重要的定义是......
Ajax:架构
令人兴奋的Ajax演变在于您如何构建Web应用程序.让我们先看看传统的Web架构:
- 为应用程序中的每个事件定义一个页面:查看项目,购买项目,签出等.
- 每个事件或操作都会将整页返回给浏览器.
- 该页面呈现给用户.
这对我们来说似乎很自然.它在Web开始时是有意义的,因为Web实际上并不是关于应用程序.Web开始时更像是一个文档存储库; 这是一个你可以简单地以特别的方式在文档之间链接的世界.它涉及文档和数据共享,而不是任何有意义的交互性.
暂时想象一下丰富的桌面应用程序.想象一下,如果每次点击,应用程序屏幕上的所有组件都从头开始重新编写,您会怎么想.好像有点坚果,不是吗?在网络上,这是我们居住的世界,直到阿贾克斯出现.
Ajax是一种新架构.该架构的重要部分是:
小型服务器端事件:现在组件在Web应用程序可以让小请求返回到服务器,获得一些信息,并调整是通过改变DOM查看的页面.没有整页刷新.
异步:发回服务器的请求不会导致浏览器阻止.用户可以继续使用应用程序的其他部分,并且可以更新UI以警告用户正在发生请求.
onAnything:我们可以基于用户所做的几乎任何事情与服务器进行交互.现代浏览器捕获大多数与操作系统相同的用户事件:鼠标悬停,鼠标点击,按键等.任何用户事件都可能导致异步请求.
这听起来很棒,不是吗?但是,通过这种改变,我们必须要小心.Web的最大优点之一是任何人都可以使用它.具有简单的语义有助于实现这一点.如果我们过度使用,我们可能会开始使用新的UI抽象让用户感到惊讶.这是对Flash UI的常见抱怨,其中用户面临新符号,隐喻和实现有用结果所需的操作.
| 归档时间: |
|
| 查看次数: |
3854 次 |
| 最近记录: |