`
java-mans
  • 浏览: 11416075 次
文章分类
社区版块
存档分类
最新评论

不学习AJAX,我可以做得更好

 
阅读更多

当AJAX刚推出时,它只有一个简单的概念,任何熟悉xmlhttp和dhtml的程序员只要花30分钟
就可以掌握到专家级水平.

它后来的发展我没有再花时间去研究,我感觉也没有必要花时间去研究.确实,现在的所谓
新技术层出不穷,即使是真正的新技术你也不可能出现一种就掌握一种,世界上还没有这样
的神人.每个人的精力有限,应该把精力放在自己认为最值得关注的地方.

何况这种本就不是新技术,在原有的技术上封装一个新概念而已.我是一个技术人员,不是一
个"概念人员".弄懂最底层的东西才能以不变应万变.

我知道有很多人不同意我的观点.但我想说明我对AJAX这种东西的认识过程.

我是从网民开始转变为程序员的.最初认识网络就是从聊天室开始.大家都记得从95年开始
到2000年左右的一段时间,基于WEB的聊天室是多么红火.但当时基于WEB的聊天室都是那种
以perl为主流(也让我至今还怀念perl)每隔一定秒数就"刷新的主页面,如果颜色设置不当,
刷新能把人眼都刷花了.

请注意,"刷新"这个关键词是AJAX的重要概念.

当很多人都不满意整个页面"刷新"来更新WEB页面的内容时,一些程序员就开始寻找不"刷新"
方案.虽然我当时不是程序员,对程序也一窍不通,但我还是用三个月时间自学了html,perl,
javascript,css.说实话当时这些内容除了perl,其它的内容中元素都不是很多,所以两个月下
来我的javascript已经达到纯熟悉的地步,可以说基本上你能想得到的页面效果我都能做出来.
如何熟悉我下面再说.

当时不刷新的聊天室在国内确实没有几个人能写出来.我在网上(96年左右的互联网资源还很
可怜)穷搜,发现一种server push技术.大家可以在现在的互联网资源上搜索一下看有多少人
了解这个技术.当时ie浏览器还没有真正成为主流,IE3无论是界面还是使用都不如NV4做得好.
所以主流浏览器是NV4.我用perl实现了一个基于server push的不刷新聊天室.

但是很快问题就出来,因为当时的web容器还没有支持线程池的,基于apache的perl写CGI
在每个用户请求下就用一个进程来完成用户请求的逻辑,而server push的关键在于一个文档
类型和循环输出(特定的文档类型可以将后收到的内容在WEB页面上不刷新地替换原来的内容),
如果每个进程都不断在循环,那么每个客户端请求就会占用一个进程来维持不间断的循环.这样
的系统性能之低可想而知,同时,IE浏览器也不支持这种文档类型.

所以寻找更好的方案来解决聊天室主信息页面不刷新的效果在97年左右是一个非常难的技术.
(放在今天我一分钟就解决了).

最后大家发现可以利用javascript的document.write(msg)来向某一窗口动态地写入内容而不
需要刷新那个页面.所以利用一个隐藏帧来刷新获取新内容,然后用javascript来写到主窗口而
形成主窗口不刷新更新内容.终于实现了同样性能的不刷新聊天室.

当时以IE浏览器以IE3和IE4为主,而且IE也还没有真正的成为主流,更没有出现XMLHTTP组件.
所以"隐藏帧来刷新获取新内容,然后用javascript来写到主窗口而形成主窗口不刷新更新内容"
这个思路正是AJAX的核心.


在我的工作与程序没有1/10000的关系时,我已经非常熟悉perl,html,css,javascript.这也正
是后来我从一个policeman辞职后能立即被一家互联网公司招聘的原因,当时国内第一大网络杂志
公司soim招聘我的职位是美工,虽然我的美术功底并不行,但我对html,css,javascrip这三种技术
熟悉得比我的指头更清楚.不借助任何工具,纯文本编写页面比公司中同行用dreamware写得还快,
当然比他们更能精确控制.

在soim的三个月后,我从一个"美工"转行做程序员,因为这三个月内我的java已经比公司一些java
程序员还要好一些.从此以后我开始真正了解什么叫程序.也正是在我努力学习汇编,c/c++的时候.
xmlhttp组件出来了.

这个组件确实比原来隐藏帧来刷新获取更新内容来更新某不刷新页面要方便多了.因为它能在本
页面实现这个效果.

在2002年左右,大家可能还记得当时MS的msn提供日程,电子邮件等功能,但当时那个页面,不是一般
的慢.而是相当的慢,可能是MS当时并没有投入多少主机硬件.反正中国网民上msn的web邮件系统就
如蜗牛一样的慢.

在msn邮件的页面上有一个功能就是排序.按发件人(MSN的WEB邮件系统非常搞笑,它不是以主题为
主链结打开邮件而是以发件人),主题,日期,邮件大小可以排序.但就在那样慢的情况下.MS对页面
内容排序这种行为仍然是用户提交排序关键字到服务端然后重新生成排序后页面再输出到客户端.
其实内容还是原来的内容,只是内容显示的顺序不同,但每排序就要有一次B/S交互.可以说完全没
有分离MVC的逻辑.一气之下我重写了它的页面.用xmlhttp获取内容,然后在客户端用javascript控
制显示内容.并在自己的邮件系统中使用.成为公司向客户推销WEBMAIL的卖点之一.这样做不但速
度快(就在客户端本地运行),而且大大减轻了服务端的压力.

其实如我这样对javascript,css,dhtml熟悉的程序员我想在中国可能有50%以上.所以AJAX这种
"东西"(叫它东西,因为它既不是一种新技术,也不是一种新概念,仅仅是一个新名字.无论是技术
还是概念我们在n年前就已经使用了),我竟然不知道为什么今天又突然火起来了.是因为以前大家
都没去用?一件穿旧了的衣服,二十年后突然从箱底拿出来了又当成宝贝了.

我知道当AJAX发展到一定规模肯定增加了新的元素.但是这些所谓的新元素也就是用一些固定的
组件"自动生成"一些常用功能的javascript.对于精通javascript的程序员而言它绝对不会比你
自己写的性能更高,更好控制.就象在服务端生成html标签一样,我觉得这种技术很搞笑.难道
<html:link href="'<%= "/" + name + "/index.jsp" %>'>比
<a href="<%=name%>/index.jsp">更清楚?管理更方便?阅读更流畅?执行更迅速?
也许是我太无知,我看不出任何优点,更不明白一个人已经很熟悉<a href="<%=name%>/index.jsp">
而又花额外的时间去学习<html:link href="'<%= "/" + name + "/index.jsp" %>'>.穿了一双挤
脚的皮鞋,难道就是因为大家都穿这种皮鞋?

我不需要学习这种技术,因为这种技术的实现我已经很清楚,它能做到的效果我用js/dhtml/xmlhttp
照样做到,而且可以做得性能更高.

当然每个人的情况不同,每个人的习惯也不同,有人离开IDE连hello world都不能完整写出来,有人
用记事本可以写得比IDE更快.所以是否需要学习某种东西是根据每个人自己的情况.我绝对不是说
大家都放弃AJAX,对于javascript/dhtml不是很熟悉的人(我是说你们可能其它方面很熟悉,比如你
知道每种平台的CPU指令)的人,用AJAX可以快速生成自己需要的功能.
我想说的是,学习什么需要有自己的判断,不在看流行什么就学什么.更不要学会什么就非要在项目
中用什么.你今天学习的东西也许很多年以后才会用到,而不是我学会什么流行的东西马上就要非要
应用到项目中以显示你会这种技术.

分享到:
评论

相关推荐

    ajax学习笔记

    ajax学习笔记.AJAX 不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,您的 JavaScript 可使用 JavaScript的 XMLHttpRequest 对象来直接与服务器进行通信。通过这个...

    ajax学习

    学习ajax的详细资料,能更好的理解ajax

    ajax教程,菜鸟学习,无刷新技术

    ajax基础教程,无刷新技术的一种方法。学习他让你更好的理解使用.net的ajaxpro.

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

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    Ajax实例演示 Jsp+Ajax 代码

    很多Ajax实例代码,相当实用。可以帮助你更好的学习Ajax

    AJAX新手快车道

    &lt;br&gt; AJAX更酷的一点在于,对于传统的Web开发人员来说,AJAX所运用的, 是更加先进的,更加标准化的,更加和谐高效的,完整的Web开发技术体系。 遵循这样的体系开发Web应用,能让你的开发过程变得更加...

    AJAX——新手快车道

    AJAX——新手快车道 前言 AJAX是什么? 首先、AJAX是一种很酷的技术,一旦采用了AJAX,就能让你的Web页面, 你的网站,甚至连同你们公司,都变得很酷。...希望这本书,能够对大家快速学习AJAX,有所帮助。

    Ajax 32个控件学习之

    对于初学者来说,Ajax是那么神秘,有了这些东西,它也不是再那么神秘了,有了这些东西,你会更好的理解Ajax,

    aAjax的应用

    方便更好的学习Ajax的应用,希望能够帮助更多的人学习java开发

    完全手册:ASP.net Ajax电子教程

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。. 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    完全手册:ASP.net.Ajax

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    Ajax大全实例详解

    里面有很多用Ajax实现的实例,附源码。例如Ajax实现上传(带进度条),留言板,Ajax验证等实例,可以更好学习Ajax

    Ajax 经典小实例

    ajax小实例,可以直接拿过来用的。帮助你更好的学习最炫的ajax

    AJAX快车通道

    而是那些早在 N 年以前,就已经在探索、 实践的先行者,他们始终在追求的:是更好的用户体验,以及更好的开发体验。 这样的精神,才是最可宝贵的,也是最值得我们学习的。许多年过去以后,当我 们再回头来看当年的...

    ajax_ajax教程.

    四天学会AJAX,国内通常的读音为“阿贾克斯”和阿贾克斯足球队读音一样。Web应用的交互如Flickr, Backpack和Google在这...就像新的编程语言或模型伴随着更多的痛苦,开发人员需要学习新的技巧及如何最好利用这些新技术。

    C#应用ajax的基本使用对初学者有很大帮助

    C#语言 三层 实现ajax对数据库的基本操作,jquery使用1.7.1,数据库使用sql server 2008 ,vs 2010,其中sql.txt是数据库的数据。对于初学者和想学习jquery和ajax的人员有很大帮助。...如果想更深层次的例子,留言给我。

    完全手册:ASP.NET AJAX实用开发详解 part3

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    完全手册ASP、NET AJAX实用开发详解光盘

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    完全手册:ASP.net Ajax电子教程-part1

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。. 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

    完全手册:ASP.net Ajax电子教程-part2

    全书通俗易懂,大量的实例供读者更加深刻地巩固所学习的知识,使读者更好地进行开发实践。. 本书共分为15章,从初识ASP.NET AJAX开始,首先介绍了ASP.NET AJAX基础知识和结构,然后介绍了ASP.NET AJAX Control ...

Global site tag (gtag.js) - Google Analytics