随笔-57  评论-129  文章-0  trackbacks-0
先申明一下,我讨厌Ajax这个名词。旧药装新瓶。(像那个80来岁的杨某一样令人讨厌,呵呵)。

正题:

    Ajax所谓的异步加载,为何需要异步,可以说异步操作通常都是一个成熟的程序设计人员会尽力回避的东西。复杂度徒增,不好控制,容易出错。

    但是,这个问题放在浏览器上就是另外一个情形,浏览器上的脚本+事件通常只有一个线程。那些看是多线程的函数:setTimeout, setInterval,其实都不会插入或中断任何一个其他的在执行中的任务,而且一旦你的脚本尚在运行,那么不管你是否在挂起等待,所有的事件都将阻 塞。窗口重画,拖动...也都得靠边站着,感觉就像是某个程序进入一个死循环了。

    以前得脚本都是做一些简单得事情,需要的时间,用户基本上都感觉不到,后来XMLHttpRequest的兴起,问题出来了,访问网络资源,你得受网速得 限制,如果同步的获取,那你就等吧,等个几秒几分几十分的,不是不可能。这时浏览器可没那么聪明,站旁边傻等,什么窗口重画,移动啊,都装个没听见。

    浏览器傻了,用户可不傻,靠,这个网站咋的,吧我的浏览器都搞死了?加入黑名单,或者碰到个脾气好点的,把你辛辛苦苦、没日没夜、绵绵数月敲下来的脚本,一律禁止运行... 傻了把,可怜的脚本程序员。

    看似浏览器的问题嘛,可是,谁叫你是中年诸葛亮呢,扶不起的阿斗你也得背着,朽木上刻章方显你的出众嘛。于是异步操作遍地开花,第N次世界大乱从此开始。

    确实这里使用异步操作很有见成效,先告诉xmlhttp后台加载网络资源。一边凉快凉快,加载完了通知一下。喝喝茶,看看报,N+1秒钟过去了,报告: 001.xml全体元素集合完毕,帐前待命...,ok,..... (机密,隐藏...)。

    不错把,你不必焦急的盯着屏幕上所不期望的白大块,不用使劲的失望的拖动着没有的鼠标。你只需要东瞧瞧西瞅瞅,随意的打发点时间,一会,东西准备好了,归你了,爱怎么办就怎么办吧。

    没看明白?简单点说吧,就是把资源加载这一操作放在脚本线程之外,那么就不会有长时间运行的脚本,那么用户就觉得你的程序响应快。就是是说ajax,其实asynchronism也就这一个地方而已。

    记住一点,浏览器上单纯的脚本程序,本身是不支持多线程的,异步也就无从谈起,而现在所说的异步,都不是纯粹的ECMAScript,都是利用浏览器带有的某些原生对象实现的。

    雕虫小技而已,结果吹得鸡毛满天飞。众嘴纭纭之势,众目睽睽之下,公鸡下蛋,鲤鱼上坡,皆有可能。
posted on 2007-06-02 14:11 金大为 阅读(951) 评论(13)  编辑  收藏 所属分类: 闲扯

评论:
# re: Ajax之异步的优势 2007-06-02 18:28 | 交口称赞
有意思
希望能多到写js性能方面的文章  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-02 20:06 | 金大为
@交口称赞
行,等下周吧JSI alpha版本发布之后,再总结一下:)  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-02 21:45 | 刘甘泉
n年前的技术了,现在才火起来,不知道还会炒出什么旧东西来  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-03 15:22 | emu
真不知道80多岁的杨某人有何值得讨厌之处。就因为满足不了楼主狭隘的世俗礼教观念吗?宁要一个从一而终默默无闻的杨某人,也不要一个老年“变节”的伟大的物理大师,这就是楼主的价值观?

楼主这篇文章也没有解决任何问题,介绍任何新的技术,和两年来的千千万万人一样,啰嗦几句“AJAX是旧药装新瓶”、“雕虫小技而已”而已。不知有何新意?为了给JSI的闪亮登场做个铺垫,把ajax先拖出来踩上两脚,顺便稍上自己一贯看不顺眼的杨某人?  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-03 19:09 | 金大为
@emu
没错,传统观念的影响,我多少是有一点.我之所以如此说他,主要还是为哪些真正为祖国的物理事业做出过伟大贡献的先辈们鸣一下不平.他们为祖国放弃了太多.相比之下,杨某显的太平凡.

个人blog.发表一些个人看法,我想没必要顾及太多.但是,居然发出来了,难免有不同的声音,没什么.
杨某,私生活,本与外人无关,但既然要到处招摇放屁,受一点鄙视,我想你也不必为他在意.

至于活生生吧这片文章和jsi联系起来,我想你多虑了.
写这文章已经写了很久了,只是最近闲着,把它从msn空间转贴过来.

目的也很简单,只是为了给那些被吵的过热的概念降降温.
玩笑之间,解开哪些神秘的东西,让初学者从中受益.  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-03 23:05 | emu
相比之下,有一个物理学家研究物理研究到30岁就放弃了,改去研究神学了,跟我们祖国的物理先驱们相比就更微不足道了对吧?
科学的地位,首先是看其成就,而不是看其牺牲了什么。相比我过的物理学先驱们,杨和李的成就不逊色于任何人,和平凡之有?
杨某的私生活既然与外人无关,就不应因此而受鄙视。
至于“处招摇放屁”,说话要就事论事,不要乱带高帽子。  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-04 08:28 | dennis
这文章要是放在一年前,我认为你是在探讨,放到现在,我认为你是在哗众取宠。  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-04 08:31 | 金大为
@emu
看清楚了,科学家首先是个普通人,我是说他的人格很平凡.不否认也没资格否认他的成就,但是当今媒体好像更关心的是他的私生活,居然把这部分吵作出来了,哪我们当能得就事论事.

或者说,老杨没有什么,只不过晚年做为一个普通的人做普通得事,错的是媒体,是媒体把杨那部分没有价值得东西抖出来了.

说他招摇放屁,记得有次光天化日之下大谈中国本科教育的成功,举例却是一些中学的基础知识.没冤枉他吧?
  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-04 08:41 | 金大为
@dennis
文章是写在Ajax满天飞的那段时间,最近从msn上转过来.
不是在探讨,也不是哗众,只不过不瞒那些过头的吵作,有感而发。
既然写了,遭一些喜欢满口Ajax的初学者、或靠着Ajax这个哗头发财的伙计们的砖头,也在所难免.也早该料到.  回复  更多评论
  
# re: Ajax之异步的优势 2007-06-04 13:45 | emu
楼主“为哪些真正为祖国的物理事业做出过伟大贡献的先辈们鸣一下不平”的功力果然厉害,佩服佩服。  回复  更多评论
  
# re: Ajax之异步的优势 2007-07-07 11:00 | Iro
如果你不了解Ajax ,那你就不要在这乱说,如果你不会Ajax ,我只能鄙视你。  回复  更多评论
  
# re: Ajax之异步的优势 2007-07-07 13:01 | 金大为
@Iro
建议你重修一下小学语文,免得让人鄙视你的语言能力:)  回复  更多评论
  
# re: Ajax之异步的优势 2007-11-23 14:18 | 对此有看法
哈哈,你太能扯淡了,这个文章说明了什么问题?最讨厌这种扯淡的
就像一本书一样,本来精华只有10页,他却给你做成50页的扯淡内容。
很明白的列出几点就好了,扯淡那么多干吗啊。
  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: