AJAX之后会是什么?

      AJAX (asynchronous JavaScript and XML)技术快速的在几周内从网络BLOG到华尔街日报蔓延开来,使开发者认为这将意味着桌面应用程序的灭亡。当然它中存在一个实事的核心就是:最近这些在AJAX大旗下开发的新WEB程序已经给一种能给最终用户提供平滑滚动,不断更新和更具互动性的输入表单的浏览器重新下了定义。

       但是,所谓的肥客户端UI同WEB形式的UI相比,还是保持着一个基本的优点,就是实时的事件响应。单独的AJAX不能处理IM,股票报价,和其他的需要“PUSH”数据流的协作应用。

       AJAX方式应用的主要目标就是将一个新的WEB页面分成一系列的更小的,使用更频繁的信息交换来下载。开发者认为AJAX是“异步的”,因为数据可以在不影响用户操作的情况下更新。例如:GOOGLE MAPS就是应用下载新的可视部分并且移动剩下的部分而减少用户滚动页面所等待的时间。

      然而,在中间件社区中,异步的正式定义就是在任一端,任一时间发送一个消息的能力。AJAX提供了逆流的方向,但是HTTP似乎使初始化服务器传送不能完成。

      幸运的是,智慧的开发者利用了HTML中的一个漏洞处理它。浏览器是为了显示在从慢速网站下载不断增长的网页而设计的。应用隐藏框架和javascript标签,HTTP可以保持打开一个长久的连接响应,允许一个应用将数据传到浏览器。

      开发这个的最简单的途径就是将浏览器换为21世纪的“green screen”傻终端。Manuel Kiessling的开源项目ARSC(A Really Simple Chat)使用AJAX技术来发送输入行,而一个更改的HTTP服务器处理打开上千个同步的连接来转播聊天数据给其他用户。另外一个例子是KnowNow的SpeedReader产品,就是用来提醒雇员相关的RSS新闻条目的。

      AJAX和异步事件响应的结合的更广泛的意义在于扩展了跨Internet发布与订阅应用的集成。

      几个开源平台提供把企业应用和WEB服务同交互WEB UI完全连接起来的强大功能。Nevow 和 Pushlets分别扩展Python和Java相似于MVC的事件循环。Mod_PubSub是作为一个用URL路径名作为主题来出发程序的事件总线而设计的,Mod_PubSub也是用多个语言编写的。商业上,KnowNow的LiveServer提供企业级类的扩充(甚至可以和Excel互相连接)。

      从桌面应用程序迁移到WEB应用明显的优点在于维护性,安全性和扩充性方面,但是也必须考虑反应时间较慢的代价,有限的交互,以及不够漂亮的图像界面。有了AJAX,PUSH技术,和普遍存在的PDF和Flash插件,WEB比以往任何时候更加接近成为一个可行的默认应用程序开发平台.

 By  Rohit Khare
May 23, 2005
原文:http://www.infoworld.com/article/05/05/23/21FEwebapppush_1.html

 


<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
### Ajax 的基本概念及其工作原理 #### 什么是 AjaxAjaxAsynchronous JavaScript and XML)是一种用于创建快速动态网页的技术组合[^1]。它并不是一种单一的技术,而是多种技术的集成应用,主要包括 HTML、CSS、DOM、JavaScript 和 XMLHttpRequest。 通过使用 Ajax 技术,可以在无需重新加载整个页面的情况下与服务器进行数据交互,从而提升用户体验。这种异步通信方式使得用户可以继续与其他部分的页面互动,而不必等待服务器返回完整的响应[^2]。 #### Ajax 工作原理 Ajax 的核心在于引入了一个中间层——即 **Ajax 引擎** 或者更具体地说是 **XMLHttpRequest 对象**。这个对象负责在客户端和服务器端之间建立连接,并完成数据传输的任务[^3]。 以下是 Ajax 的工作机制概述: - 用户发起某个事件(例如点击按钮或输入表单字段),触发前端脚本运行。 - 前端脚本创建一个 XMLHttpRequest 实例并向指定 URL 发送 HTTP 请求(GET/POST 方法均可)。 - 当服务器接收到请求后会执行相应的逻辑并将结果作为响应返回给浏览器中的 XMLHttpRequest 对象。 - 接收到来自服务器的数据之后,可以通过预定义好的回调函数进一步解析该数据并对 DOM 进行动态修改以反映最新状态。 下面展示如何手动构建最简单的 GET 请求: ```javascript function createCORSRequest(method, url) { var xhr = new XMLHttpRequest(); if ("withCredentials" in xhr){ xhr.open(method, url, true); } else if (typeof XDomainRequest !== "undefined") { // IE8 & IE9 support. xhr = new XDomainRequest(); xhr.open(method, url); } return xhr; } var request = createCORSRequest('GET', 'https://example.com'); if (request) { request.onload = function() { console.log(request.responseText); }; request.onerror = function() { alert('There was a problem with the request.'); }; request.send(); } ``` 上述代码片段展示了如何跨域发送 AJAX 请求并处理成功或者失败的情况下的相应动作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值