原来AJAX是这样的

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

一直以为AJAX,像javascript 一样 是一个新的脚本的或者什么语言讷,都没赶进去看。原来 是Asynchronous Javascript And Xml

fu :

(本文发表于《程序员》2007年第1期)

16.5亿。相信每个从事web开发的同行现在都不会这个数字陌生。109日,Google用价值16.5亿美金的股票买下了YouTube.com。对于所有怀揣web 2.0梦想的从业者,这起并购案如同一支强心针,大家仿佛又看到了一夜成名或者一夜暴富的机会。于是,作为淘金必须的镐头与水桶,web开发的新技术重新受到了广泛的关注。

web开发者的角度回顾2006年,首先出现在我们记忆中的是AJAX——从技术层面上来说,这个词是“Asynchronous Javascript And Xml”的首字目缩写。但对于更多并不关心什么是“异步”、“Javascript”或者“XML”的网站用户来说,AJAX更大程度上意味着“Making Browsers Suck Less”——就像GMail那样,在HTML页面上提供丰富的交互能力。Web 2.0的一大特点是“用户创造内容”,更便利的交互就意味着用户的创作热情更能得到鼓励,所以AJAX成为web 2.0的特征之一也就是顺理成章之事了。

AJAX2006年的热潮并非空穴来风。在Amazon发布的“2006年最受读者喜爱的计算机及网络类图书”列表中,一本《AJAX in Action》高居榜首——负责翻译其中文版《AJAX实战》的AjaxCn.org也是国内实践与推广AJAX的先驱。紧随其后的是一本《精通CSS》,同样与web开发有着莫大的关系。尽管很多专家认为基于JavaScript、又饱受浏览器兼容问题之苦的AJAX只是web界面开发的“过渡性技术”,但不争的事实是:越来越多的网站采用或即将采用AJAX为他们的用户提供更便利的使用体验。而随着PrototypeDojoscript.aculo.us等一批AJAX框架的成熟,以及一批AJAX图书的问世,AJAX也逐渐成为了一种成熟可靠的技术——或者说,成为了web开发者们不可或缺的工具之一。

Web 2.0的实践家们一直相信着“长尾理论”——所谓“畅销”,在市场的统计图表上,其实只占前面的一部分,而在“头部”之后,还有一条长长的“尾巴”;将长尾上所聚集的商业潜能进行加总,威力往往轻松超越畅销榜上的前十名。不过这条长尾巴可不是那么容易抓住的:利基市场的消费习惯此前几乎没人关注,更遑论深入调研,所以网站的经营者更多的时候只能“摸着石头过河”——从一个模糊的理念入手,从一个简单的beta版本开始运营,根据用户的反馈不断调整网站的功能乃至经营模式。所以这条长尾巴也给站长们提出了一个新的课题:当那些热情的用户尝试了你的网站、并且告诉你他们的需求,你是否能够及时作出调整?或者落实到技术面,你所选择的技术和开发工具是否允许你及时作出调整?

这正是Ruby on Rails大受青睐的原因所在。很多人在接触Rails之后的第一感觉是:它能够很简单地开发web应用。不管使用Java还是.NET,越来越多的开发者开始深切地感到:这些“大一统”的技术平台虽然适用于企业级开发,在面对互联网应用时却多少有些力不从心。就在此时,Rails从天而降,而且它要简单得多。但光有简单是不够的。很多开发真实网站应用的专业软件开发者深入研究了Rails,并发现这不仅仅是一个快速开发网站的工具——它融汇了大量web应用开发的知识,这些知识从根本上降低了web开发的门槛。

如说,所有的Rails应用都采用了“模型-视图-控制器”(Model-View-ControllerMVC)架构。Java开发者都很熟悉MVC框架,例如TapestryStruts。但RailsMVC贯彻得更彻底:当你用Rails开发时,每一块代码该放在什么地方都有一定之规,代码之间都按照规定的方式进行交互。从一开始,Rails就已经帮你准备好了应用程序的骨架,即便还没有编写任何一行应用代码。同样是MVC框架,Struts也允许你实现各种各样的功能,但那只是“能力”,却不是“知识”。你可以有100种方式来组织你的web应用,Rails则把一种最适用的方式直接放到你的手上。

即便在J2EE的世界里,也有很多开发者曾经尝试把自己的经验揉合到框架设计中,但Java语言本身的静态特质使得人们不得不借助XML来描述大量信息——说得俗点,Java程序怎么写都是Java程序。而Rails采用了Ruby语言。Ruby很简洁,却又不致简练得难以理解;而且Ruby的语法非常灵活,开发者甚至可以根据需要创造出自己的语法。使用Ruby,你可以自然而清晰地表述自己的想法,因此Ruby程序很容易编写,而且放上几个月之后也很容易读懂——这是非常重要的。

开发者们还会在Rails中发现另一件事:这个框架的背后有一套完整的哲学支撑。Rails的设计始终遵循两个核心原则:DRY和惯例重于配置(convention over configuration)。DRY也就是“不要重复你自己”(Don't Repeat Yourself)的缩写:系统中的每项知识只应该在一个地方描述。借助Ruby的强大威力,Rails实现了这一目标。在Rails应用程序中,你几乎不会看到重复的代码,每件事情都只需要说一遍——你只要在符合MVC架构惯例的某个地方说一遍,以后就不必再重复了。用惯其他web框架的程序员大多有这样的经历:只要对数据库结构做一点点修改,就必须同时修改好几处代码。对他们而言,DRY的哲学不啻是一大福音。惯例重于配置也同样重要。对于“如何将应用程序组装起来”这件事,Rails自有一套默认的规则——相当有道理的一套规则。只要遵循命名惯例,编写一个Rails应用程序所需的代码量比起典型的、使用XML配置的Java web应用要少得多。

2006年里,国内的一批web 2.0开拓者跟随着37Signals等先行者的步伐,开始了对Ruby on Rails的尝试。包括书签网站“顶啊”(http://dingr.com)、日程安排网站“易做”(http://www.ezuo.com)、Ieasehttp://www.iease.com.cn)和“发生网”(http://www.8sheng.com)、文件存储网站51dirhttp://www.51dir.com)、相册网站Soopiehttp://soopie.com)、音乐评论网站“乐道”(http://www.likenote.com)、团队协作网站Trikrhttp://www.trikr.net)等一批新兴网站在内的中国web 2.0创业者们选择用Rails来开发自己的网站——也许你可以说我们提到这些名字仅仅是因为他们采用了Rails,但这又何尝不是他们能够在这个残酷的世界得以生存发展的原因呢?除了这些初创网站,天涯社区、豆瓣网等成熟网站也对Rails表现出浓厚的兴趣,并开始在部分功能的开发中采用。

JavaEye是国内著名的软件开发技术站点,其2.0版本也采用了Ruby on Rails开发。在接受InfoQ网站采访时,JavaEye的站长范凯表示:相对于传统的J2EE技术平台,他的开发团队采用Ruby on Rails获得了至少5倍的开发效率提升,JavaEye 2.0网站能够在不到三个月的时间内上线便是明证。但范凯同时也指出,这种高效率带来的不仅仅是机遇,同时也是对团队的挑战——如何充分发挥Rails的开发速度,如何在高速度下保持团队成员之间、团队与客户的紧密协作,都是他们面临的新问题。说得直白一点,Rails让这支团队变得如此高效,如何让开发过程和管理制度不致成为这支高效团队的绊脚石,这本身就是软件工程从未遇到过的挑战。敏捷方法提出了一套基于快速迭代的实践指导,但对于熟练掌握Rails的团队来说,有很多问题就连敏捷方法也没有好的解决办法——换句话说,敏捷方法只是Rails开发者的基本条件,他们还需要继续总结开发过程和项目管理方面的最佳实践。

尽管如此,Rails最大的意义在于它给“开发web应用的难度”这件事情划下了一条线。从此以后,不管来自微软、SunIBM还是BEA,任何一个新的web开发工具都必须至少具备与Rails相当的效率——换句话说,如果一个新工具开发网站所需的时间比Rails还长、代码量比Rails还多,它就会被挑剔的网站开发者们直接抛弃——或者干脆就不会出现。而在另一方面,对于开发者和创业者来说,开发一个网站的难度再也不会超过Agile Web Development with Rails书中的示例,这不啻是一大福音——也是一大挑战,原因是显而易见的。

在这篇文章的最后,我想给大家看另一个数字:160——目前中国共有大约160家视频网站,大多是在模仿YouTube.com的模式。新技术能给用户带来良好的交互体验,也能大大提升创业者的开发效率,但没有办法告诉他们“应该做什么”。2006年,web 2.0的热潮让很多人重新做起了网站创业梦,包括AJAXRuby on Rails在内的新技术帮助他们实践自己的梦想,在此我祝愿他们都能找到属于自己的长尾巴,祝他们都能梦想成真。


 
Ajax、Json深入浅出,及原生Ajax及简化版Ajax 通过对ajax的就绪状态做判断,我们在就绪状态是4的情况下编写我们的对响应结果的处理逻辑代码,但是不是任何响应结果我们都要处理,因为服务器的响应也有状态码,比如:200、404、500等等。在ajax对象中提供了一个监听机制 “onreadystatechange”,用来监听ajax的属性readyState的改变情况,一旦该值改变,就会触发监听中的函数的执行。发送请求后,不需要等待服务端的响应,继续按照顺序执行其他逻辑代码,监听到响应,自动调用指定的方法。 阅读详情

相关推荐

Web技术交锋2006

(本文发表于《程序员》2007年第1期) <!-- @page { size: 8.5in 11in; margin: 0.79in } P { margin-bottom: 0.08in } --> 16.5亿。相信每个从事web开发的同行现在都不会这个数字陌生。10月9日,Google用价值16.5亿美金的股票买下了

透明思考@CSDN 9697

2006年web发展趋势

经过2005年的炒作,无刷新技术的到推广。涌现出了不少好产品。例如gmail,等等。2006年,网页将会向那个方向发展呢?1)无刷新技术将得到企业级的推广和应用。特别是应用方面的b/s。例如ERP,CRM财务系统等等。2)在所看所得的基础上,更进一步发展所想所得。也就是说,用户想到哪里就做到哪里不用页面专向,和重新填写资料。举个例子说明:在http://www.513588.c

ijune的专栏 807

ajax 原来这么骚(详解)

你这么怪,接触到你伤的我遍体鳞伤1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSet

NetSnake_的博客 406

什么是Ajax以及ajax请求的步骤

什么是Ajax以及ajax请求的步骤 1.Ajax是什么? Asynchronous JavaScript & XML。Ajaxweb开发的一种技术。 2.Ajax请求的步骤 (1)创建`XMLHttpRequest`对象,也就是创建一个异步调用对象; (2)创建一个新的`HTTP`请求,并指定该`HTTP`请求的方式、`URL`及验证信息; (3)设置响应`HTTP`请求状...

Fly的博客 1万+

什么是ajaxajax详解

今天来聊一聊前后端交互的重要工具AJAX 1. AJAX - 到底什么是Ajax? ajax 全名 async javascript and XML(异步JavaScript和XML) 是前后台交互的能⼒ 也就是我们客户端给服务端发送消息的⼯具,以及接受...

刘顺顺的博客 1万+

异步请求ajax介绍,原生ajax,$.ajax基本使用

在这篇文章中,我们将学习ajax的工作原理,已经使用原生的ajax和jquery的ajax来进行编程练习。 目录 ajax原理介绍 什么是ajax ajax的优点 ajax的应用场景 ajax原理分析 使用ajax 原生ajax jquery使用ajax $.ajax() $.get() $.post() 总结 ajax原理介绍 ajax现在是前后端交互的重要工具,可以说,只要从事于it行业,ajax那就是必须要掌握的一名技术,下面我们就来对a...

秃头披风侠的博客 3914

Ajax】原生Ajax与jQuery中的Ajax

文章目录1 express 基本使用2 原生 Ajax2.1 Ajax 简介2.2 XML 简介2.3 Ajax 的特点2.3.1 Ajax 的优点2.3.2 Ajax 的缺点2.4 Ajax 的使用2.4.1 核心对象2.4.2 使用步骤2.4.3 解决 IE 缓存问题2.4.4 AJAX 请求状态2.5 GET.html2.6 POST.html2.7 JSON.html2.8 IE 缓存问题2.9 超时与网络异常2.10 取消请求2.11 重复请求问题3 jQuery 中的 Ajax3.1 get 请

weixin_45980065的博客 1681

ajaxajax详解,ajax是什么?

ajax是一种用来改善用户体验的技术,其本质是利用浏览器提供的一个特殊的对象(XMLHttpRequest,也可称之为ajax对象)向服务器发送异步请求。发送请求时,浏览器会锁定当前页面,用户不能够对当前页面做其他操作。朋友们我们本篇的内容到这就结束了,本篇的内容还是非常简单的,如果有啥不会的朋友咱们可以一起谈论哈~true:异步的,发送请求的同时,浏览器不会销毁当前页面,用户任然可以对当前页面做其他操作。注: 异步请求:发送请求的同时,浏览器不会销毁当前页面,用户任然可以对当前页面做其他操作。...

小源的成长历程 6619

原生AJAX,jQuery Ajax创建使用

AJAX 全称为 Asynchronous JavaScript And Xml ,表示异步的Java脚本和新技术。

jocer_zhu的博客 965

Ajax 什么是Ajax? Ajax的基本语法

Ajax 什么是Ajax? AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 同步交互: 客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求。 异步交互: 客户端发出一个请...

felix的博客 2743

AjaxAjax技术讲解

为什么需要Ajax? 需求:有的时候我们需要将本次的响应结果和前面的响应结果内容在同一个界面中展现给用户。 解决:在后台服务器端将多次响应内容拼接成一个jsp页面,但是这样会造成很多响应内容被重复响应,资源浪费。所以,我们使用Ajax技术 什么是AjaxAJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),是一种异步刷新技术...

寒泉 2万+

ajax、反向ajax、jsonp详解

ajax详解 什么是ajax 其实ajax已经属于老技术了,现在几乎没人不会用了,在这里主要是把底层的东西给大家分享一下,以备应对装逼的面试官。 ajax即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在

卡布洛技术专栏 5908

Ajax】了解Ajax与jQuery中的Ajax

相比于 $.get() 和 $.post() 函数,jQuery 中提供的 $.ajax() 函数,是一个功能比较综合的函数,它允许我们对 Ajax 请求进行更详细的配置。jQuery 中 $.get() 函数的功能单一,专门用来发起 get 请求,从而将服务器上的资源。之前所学的技术,只能把网页做的更美观漂亮,或添加一些动画效果,但是,Ajax能让我们轻松实现。数据的添加、删除、修改、查询操作,都需要通过 ajax 的形式,来实现数据的交互。使用 $.ajax() 发起 GET 请求时,只需要将。

早睡早起长头发的博客 2587

ajax的三种方法以及ajax概念

目录 Ajax技术主要包括: 1.客户端脚本语言:JavaScript 2.异步数据获取技术:XMLHttpRequest 3.数据交换和操作技术:XML和XSTL 4.动态显示和交互技术DOM及基于标准的表示技术XHTML和CSS等。 ajax:异步请求特点:局部刷新 异步加载 jQuery中的Ajax: jQuery中发起Ajax请求的三种方法: $.get():向服务器获取数据 $.post():用于向服务器提交数据。 $.ajax用于向服务器提交和获取数据。 $.ge

weixin_54401017的博客 8167

JavaScriptAjax

Ajax

南栀的博客 3945

最全的ajax详细介绍,ajax

最全ajax全套 ajax简介 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax不是一种新的编程语言,而是使用现有标准的新方法。AJAX可以在不重新加载整个页面的情况下,与服务器交换数据。这种异步交互的方式,使用户单击后,不必刷新页面也能获取新数据。使用Aja

前端技术教程 1万+

原生ajax和Jquery的ajax

目录 原生ajax 传统请求(同步方式)的问题 Ajax优势和作用 Ajax请求与传统请求的区别: ajax原理(方法,属性 ) XMLHttpRequest open send 属性 readyState tatus responseText 事件 ajax实现步骤 ajax的get和post传参 get zhuce.html文件代码如下: post Jquery之Ajax get post ajax 封装ajax 原生ajax Asynchronou..

weixin_58139900的博客 1931

Ajax学习笔记(一):原生AJAX、HTTP协议、AJAX案例准备工作、发送AJAX请求、AJAX 请求状态

AJAX 全称为 Asynchronous JavaScript And XML,就是异步的 JS 和 XML。通过 AJAX 可以在浏览器中向服务器发送异步请求,最大的优势:无刷新获取数据。AJAX 不是新的编程语言,而是一种将现有的标准组合在一起使用的新方式比如百度搜索框:搜索abcd,下面出现的提示框就是用到Ajax,提示框中的信息不是自动生成的,而是向服务器发送请求,数据从服务器返回。注册页面:当我们输入一个用户名,不可以时,会提示此用户名太受欢迎,请更换一个,也是运用了Ajax

weixin_62764364的博客 1115

ajax总结_ajax connect

最近开始了ajax的学习,为了巩固复习所学知识,我准备将他们总结一下,以方便我的学习。大家也可以共同进步,互相学习。Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的Web应用程序的技术。1.建立tcp网络连接2.客户端:发送请求头+请求体3.服务端:返回响应头+响应体4.断开tcp网络连接5.浏览器渲染响应体。

2401_84572976的博客 915
上一篇: 男人25岁前的忠告
下一篇: java关于23种设计模式的有趣见解
mircle
博客等级 码龄22年 11粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值