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

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

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

    月亮的太陽

    小乖的BLOG
    posts - 114, comments - 41, trackbacks - 0, articles - 27
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    使用Ajax的挑戰(zhàn)

    Posted on 2005-12-29 10:40 月亮的太陽 閱讀(355) 評論(0)  編輯  收藏 所屬分類: 編程
     

      與任何技術(shù)一樣,使用Ajax在相當(dāng)多的方面都可能范錯誤。我在這兒討論的問題目前都缺少解決方案,并將會隨著Ajax的成熟而解決或提高。隨著開發(fā) Ajax應(yīng)用經(jīng)驗的不斷獲取,開發(fā)者社區(qū)中將會出現(xiàn)最好的實踐經(jīng)驗與指導(dǎo)方針。

      1、XMLHttpRequest的有效性

      Ajax開發(fā)者面對的一個最大問題是當(dāng)XMLHttpRequest不可用時如何反應(yīng)。雖然大部分現(xiàn)代瀏覽器支持XMLHttpRequest,但還是有少量的用戶,他們的瀏覽器不能支持,或由于瀏覽器安全設(shè)置而阻止對XMLHttpRequest的使用。若你的Web應(yīng)用發(fā)布于公司內(nèi)部的 Intranet上,你很可能可以指定支持哪種瀏覽器,并可以確保XMLHttpRequest是可用的。若你在公共WEB上發(fā)布,則你必須意識到由于假定XMLHttpRequest是可用的,所有就阻止了老瀏覽器、手持設(shè)備瀏覽器等等用戶來使用你的系統(tǒng)。

      然而,你應(yīng)該盡力保證應(yīng)用系統(tǒng)“正常降級”使用,在系統(tǒng)中保留適用于不支持XMLHttpRequest的瀏覽器的功能。在購物車?yán)又校詈玫姆椒ㄊ怯幸粋€Add to Cart按鈕,可以進(jìn)行常規(guī)的提交處理,并刷新頁面來反映購物車狀態(tài)的變化。Ajax行衛(wèi)可以在頁面被載入時通過JavaScript添加到頁面中,只在 XMLHttpRequest可用的情況下,為每個Add to Cart按鈕加上JavaScript處理函數(shù)。另一個方法是在用戶登錄時檢測XMLHttpRequest,再決定是提供Ajax版本還是常規(guī)基于 form提交的版本。

      2、可用性考慮

      圍繞著Ajax應(yīng)用的大部分問題都是很普通的問題。例如,讓用戶知道他們的輸入已經(jīng)被注冊并處理,是很重要的,因為在XMLHttpRequest處理過程中并不能提供通常的漏斗旋轉(zhuǎn)光標(biāo)。一種方法是將“確認(rèn)”按扭上的文本替換為“正在更新中…”,以避免用戶在等待響應(yīng)時多次點擊按鈕。

      另一個問題是,用戶可能沒有注意到他們正在觀看的頁面已經(jīng)被更新。可以通過使用各種視覺技巧來將用戶的眼光吸引到頁面的更新區(qū)域。還有一個問題是通過 Ajax更新頁面打斷了瀏覽器“退回前頁”按鈕的正常工作,地址欄中的URL不能反映頁面的全部狀態(tài),并且不能使用書簽功能。參見Resource章節(jié)中列出的網(wǎng)站地址上的文章來了解更多Ajax應(yīng)用關(guān)于可用性方面的問題。

      3、服務(wù)器負(fù)載

      使用Ajax界面代替?zhèn)鹘y(tǒng)的基于form的界面可能戲劇性地增加傳遞到服務(wù)器的請求數(shù)量。例如,一個普通的Google搜索給服務(wù)器造成一次命中,并在用戶確認(rèn)搜索表單時發(fā)生。然而,Google Suggest,將會試圖自動完成你的搜索詞,在用戶打字時將會往服務(wù)器發(fā)送多個請求。在開發(fā)一個Ajax應(yīng)用時,要注意到你將會發(fā)送多少請求到用戶器端,以及服務(wù)器的負(fù)載指標(biāo)。你可以通過在客戶端適當(dāng)?shù)鼐彺嬲埱蟆⑴c服務(wù)器響應(yīng)來緩減負(fù)載壓力。你也應(yīng)該在設(shè)計Ajax應(yīng)用時盡量在客戶端處理更多的邏輯,而不用與服務(wù)器端通訊。

      4、處理異步

      一定要記住,沒有任何東西可以保證XMLHttpRequest將會按照它們被發(fā)送的順序來依次結(jié)束。實際上,你在設(shè)計系統(tǒng)時,腦子里應(yīng)該始終假定它們不會按原來順序結(jié)束。在購物車?yán)又校褂昧艘粋€最后更新的時間戳來保證最新的數(shù)據(jù)不會被改寫。這個非常基本的方法可以在購物車場景中工作,但可能不能在其它情況下工作。在設(shè)計時刻就要考慮你該如何處理異步服務(wù)器響應(yīng)。

      結(jié)論

      你現(xiàn)在應(yīng)該對于Ajax的基本原則有了一個良好的了解,另外,你應(yīng)該理解一些更高級的隨Ajax方法而來的設(shè)計問題。創(chuàng)建一個成功的Ajax應(yīng)用需要一系列的方法—從JavaScript UI設(shè)計到服務(wù)器端架構(gòu)—但是你現(xiàn)在應(yīng)該已經(jīng)具備了需要使用到的Ajax核心知識。

    主站蜘蛛池模板: 一个人看的免费视频www在线高清动漫 | 国产偷伦视频免费观看| 亚洲色图校园春色| 亚洲乱码精品久久久久..| 亚洲?V无码乱码国产精品| 成年人网站在线免费观看| 日本一区二区三区日本免费| 扒开双腿猛进入爽爽免费视频| 亚洲国产精彩中文乱码AV| 最近的免费中文字幕视频 | 天堂亚洲国产中文在线| 亚洲国产激情一区二区三区| **一级一级毛片免费观看| 特级av毛片免费观看| 中文字幕亚洲综合精品一区| 午夜亚洲福利在线老司机| 91嫩草免费国产永久入口| 亚洲精品国产日韩无码AV永久免费网| 亚洲剧情在线观看| 亚洲乱码中文字幕综合| 成人午夜免费福利| 日韩免费电影网站| 人人公开免费超级碰碰碰视频| 亚洲中文字幕无码av在线| 亚洲人精品午夜射精日韩| 成年女人永久免费观看片| 99精品视频在线观看免费专区| 无码的免费不卡毛片视频| 亚洲综合精品成人| 亚洲电影在线播放| 亚洲av午夜福利精品一区人妖| 亚洲国产综合人成综合网站| 一个人免费高清在线观看| 99精品视频在线观看免费专区| 成人免费一区二区三区| 香蕉视频在线观看免费| 亚洲国产成人精品无码区花野真一 | 久久久久国产精品免费免费搜索| 国产成年无码久久久免费| a一级毛片免费高清在线| 免费看黄网站在线看|