<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——?dú)g迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術(shù),交流工作經(jīng)驗(yàn),分享JAVA帶來的快樂!本網(wǎng)站部分轉(zhuǎn)載文章,如果有版權(quán)問題請與我聯(lián)系。

    BlogJava 首頁 新隨筆 聯(lián)系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks
    Ajax不是萬能的,在適合的場合使用Ajax,才能充分發(fā)揮它的長處,改善系統(tǒng)性能和用戶體驗(yàn),絕不可以為了技術(shù)而濫用。Ajax的特點(diǎn)在于異步交互,動(dòng)態(tài)更新web頁面,因此它的適用范圍是交互較多,頻繁讀取數(shù)據(jù)的web應(yīng)用?,F(xiàn)在來看幾個(gè)Ajax的應(yīng)用實(shí)例,讀者可以了解如何使用Ajax技術(shù)改進(jìn)現(xiàn)有的web應(yīng)用系統(tǒng)。

    場景1. 用Ajax進(jìn)行數(shù)據(jù)驗(yàn)證

    在填寫表單內(nèi)容時(shí),需要保證數(shù)據(jù)的唯一性(例如新用戶注冊填寫的用戶名),因此必須對用戶輸入的內(nèi)容進(jìn)行數(shù)據(jù)驗(yàn)證。

    數(shù)據(jù)驗(yàn)證通常有兩種方式:

    一種是直接填寫,然后提交表單,這種方式需要將這個(gè)頁面提交到服務(wù)器端進(jìn)行驗(yàn)證,整個(gè)過程不僅時(shí)間長而且造成了服務(wù)器不必要的負(fù)擔(dān);

    第二種方式是改進(jìn)了的驗(yàn)證過程,用戶可以通過點(diǎn)擊相應(yīng)的驗(yàn)證按鈕,打開新窗口查看驗(yàn)證結(jié)果,但是這樣需要新開一個(gè)瀏覽器窗口或者對話框,還需要專門編寫驗(yàn)證的頁面,比較耗費(fèi)系統(tǒng)資源。

    而使用Ajax技術(shù),可以由XMLHttpRequest對象發(fā)出驗(yàn)證請求,根據(jù)返回的HTTP響應(yīng)判斷驗(yàn)證是否成功,整個(gè)過程不需要彈出新窗口,也不需要將整個(gè)頁面提交到服務(wù)器,快速而又不加重服務(wù)器負(fù)擔(dān)。

    場景2.按需取數(shù)據(jù)

    分類樹或者樹形結(jié)構(gòu)在web應(yīng)用系統(tǒng)中使用得非常廣泛,例如部門結(jié)構(gòu),文檔得分類結(jié)構(gòu)常常使用樹形空間呈現(xiàn)。

    以前每次對分類樹得操作都會(huì)引起頁面重載,為了避免這種情況出現(xiàn),一般不采用每次調(diào)用后臺(tái)得方式,而是一次性將分類結(jié)果中得數(shù)據(jù)一次性讀取出來并寫入數(shù)組,然后根據(jù)用戶的操作,用JavaScript來控制節(jié)點(diǎn)的呈現(xiàn),這樣雖然解決了操作響應(yīng)速度,不重復(fù)載入頁面以及避免向服務(wù)器頻繁發(fā)送請求的問題,但是如果用戶不對分類進(jìn)行操作或者只對分類樹中的一部分?jǐn)?shù)據(jù)進(jìn)行操作的話(這種情況很普遍的),那么讀取的數(shù)據(jù)中就會(huì)有相當(dāng)大的冗余,浪費(fèi)了用戶的資源。特別是在分類結(jié)構(gòu)復(fù)雜,數(shù)據(jù)龐大的情況下,這種弊端就更加明顯了。

    現(xiàn)在應(yīng)用Ajax改進(jìn)分類樹的實(shí)現(xiàn)機(jī)制。在初始化頁面時(shí),只獲取第一級子分類的數(shù)據(jù)并且顯示;當(dāng)用戶點(diǎn)開一級分類的第一節(jié)點(diǎn)時(shí),頁面會(huì)通過Ajax向服務(wù)器請求當(dāng)前分類所屬的二級子分類的所有數(shù)據(jù);如果再請求已經(jīng)呈現(xiàn)的二級分類的某一節(jié)點(diǎn)時(shí),再次向服務(wù)器請求當(dāng)前分類所屬的三級子分類的所有數(shù)據(jù),以此類推。頁面會(huì)根據(jù)用戶的操作向服務(wù)器請求它所需要的數(shù)據(jù),這樣就不會(huì)存在數(shù)據(jù)的冗余,減少了數(shù)據(jù)下載總量。同時(shí),更新頁面時(shí)不需要重載所有內(nèi)容,只更新需要更新的那部分內(nèi)容即可,相對于以前后臺(tái)處理并且重載的方式,大大縮短了用戶的等待時(shí)間。

    場景3.自動(dòng)更新頁面

    在web應(yīng)用中有很多數(shù)據(jù)的變化時(shí)十分迅速的,例如最新的熱點(diǎn)新聞,天氣預(yù)報(bào)以及聊天室內(nèi)容等。在Ajax出現(xiàn)之前,用戶為了即使了解相應(yīng)的內(nèi)容必須不斷刷新頁面,查看是否有新的內(nèi)容變化,或者頁面本身實(shí)現(xiàn)定時(shí)刷新的功能(大多數(shù)聊天室頁面就是這樣做的)。

    有可能會(huì)發(fā)生這種情況;有一段時(shí)間網(wǎng)頁的內(nèi)容沒有發(fā)生任何變化,但是用戶并不知道,仍然不斷的刷新頁面;或者用戶失去了耐心,放棄了刷新頁面,卻很有可能在此有新的消息出現(xiàn),這樣就錯(cuò)過了第一時(shí)間得到消息的機(jī)會(huì)。

    應(yīng)用Ajax可以改善這種這種情況,頁面加載以后,會(huì)通過Ajax引擎在后臺(tái)進(jìn)行定時(shí)的輪詢,向服務(wù)器發(fā)送請求,查看是否有最新的消息。如果有則將新的數(shù)據(jù)(而不是所有數(shù)據(jù))下載并且在頁面上進(jìn)行動(dòng)態(tài)的更新,通過一定的方式通知用戶(實(shí)現(xiàn)這樣的功能正是JavaScript的強(qiáng)項(xiàng))。

    這樣即避免了用戶不斷手工刷新頁面的不便,也不會(huì)因?yàn)橹貜?fù)刷新頁面造成資源浪費(fèi)。

    既然你己經(jīng)對Ajax產(chǎn)生了興趣,還要知道重要的一點(diǎn),即什么時(shí)候應(yīng)該使用Ajax技術(shù),而什么時(shí)候不該用。首先,不要害怕在應(yīng)用中嘗試新的方法。我們相信.幾乎每個(gè)web應(yīng)用都能從Ajax技術(shù)中獲益,只不過不要矯杠過正,過于離譜就行了。從驗(yàn)證開始就很合適,但是不要限制你的主動(dòng)性。你當(dāng)然可以使用Ajax提交數(shù)據(jù),但也許不能把它作為提交數(shù)據(jù)的主要方法。

    其次,惟一會(huì)影響你應(yīng)用Ajax的就是瀏覽器問題。如果大量用戶(或者特別重要的用戶)還在使用比較舊的瀏覽器,如IE 5 , Safari 1.2或Mozilla 1.0之前的版本,Ajax技術(shù)就不能奏效。如果這是一些很重要的用戶,你就要使用針對目標(biāo)用戶的跨瀏覽器的方法,而放棄Ajax,或者開發(fā)一個(gè)可以妥善降級的網(wǎng)站。瀏覽器支持可能不是一個(gè)重要因素,因?yàn)閚etscape Navigaxar 4在市場上的份額很小。不過,還是應(yīng)該查看Web日志,看看你的應(yīng)用適用什么技術(shù)。

    如前所述,驗(yàn)證和表單填寫就非常適合采用Ajax實(shí)現(xiàn)。還可以使用DOM的“拖”技術(shù)建立真正動(dòng)態(tài)的網(wǎng)站,如google的個(gè)性化主頁.

    可以看到,Ajax為Web應(yīng)用開發(fā)提供了新的機(jī)會(huì)。你不會(huì)再因?yàn)橐酝膶S眉夹g(shù)或技術(shù)折中方案而受到妨礙。利用Ajax,胖客戶與瘦客戶之間的界限不再分明,真正的贏家則是你的用戶。
    posted on 2007-09-05 17:19 rogerfan 閱讀(1272) 評論(2)  編輯  收藏 所屬分類: 【Java知識(shí)】【開源技術(shù)】

    Feedback

    # 1[未登錄] 2016-04-06 22:43 1
    1  回復(fù)  更多評論
      

    主站蜘蛛池模板: 日本a级片免费看| 亚洲色精品aⅴ一区区三区| 日韩毛片一区视频免费| 亚洲中文字幕无码中文字在线 | 亚洲精品国产免费| 亚洲精品V天堂中文字幕| 国产aⅴ无码专区亚洲av麻豆| 777成影片免费观看| 青草久久精品亚洲综合专区| 国产AV无码专区亚洲AWWW| 国产免费久久精品99re丫y| 免费精品视频在线| 亚洲国产精品成人综合久久久 | 免费无码一区二区三区蜜桃大| 国产免费牲交视频免费播放| 亚洲国产中文在线二区三区免| 免费人成视网站在线观看不卡| 免费v片在线观看视频网站| 一级一黄在线观看视频免费| 亚洲AV一二三区成人影片| 国产亚洲美女精品久久久2020| 久久这里只有精品国产免费10| 国产日韩AV免费无码一区二区三区| 亚洲mv国产精品mv日本mv| 亚洲精品无码永久中文字幕 | 亚洲网站视频在线观看| 全亚洲最新黄色特级网站 | 久久成人免费电影| 成人一级免费视频| 亚洲激情视频图片| 亚洲成AV人片一区二区密柚| 又粗又硬又黄又爽的免费视频 | 永久看日本大片免费35分钟| 久久精品免费大片国产大片| 亚洲日韩久久综合中文字幕| 亚洲白色白色在线播放| 亚洲成亚洲乱码一二三四区软件| 亚洲av无码国产精品色在线看不卡| 在线观看视频免费完整版| 91av视频免费在线观看| 国色精品va在线观看免费视频|