隨筆-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 金大為 閱讀(999) 評論(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頁的扯淡內容。
          很明白的列出幾點就好了,扯淡那么多干嗎啊。
            回復  更多評論
            
          主站蜘蛛池模板: 仁怀市| 九寨沟县| 桑日县| 太湖县| 松阳县| 溧阳市| 水城县| 宁安市| 衡南县| 三江| 萍乡市| 靖远县| 中牟县| 荔波县| 屯门区| 武夷山市| 开平市| 锦屏县| 通山县| 雷州市| 茶陵县| 肇东市| 连南| 阆中市| 巴东县| 南京市| 敦化市| 健康| 武平县| 凉山| 平远县| 安平县| 紫金县| 克拉玛依市| 澳门| 西城区| 宝坻区| 江门市| 岑巩县| 北川| 乐亭县|