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

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

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

    隨筆-4  評論-0  文章-3  trackbacks-0

    使用Ajax的挑戰(zhàn) 閱讀次數(shù)220

    出處 不詳     


    與任何技術(shù)一樣,使用Ajax在相當(dāng)多的方面都可能范錯誤。我在這兒討論的問題目前都缺少解決方案,并將會隨著Ajax的成熟而解決或提高。隨著開發(fā)Ajax應(yīng)用經(jīng)驗(yàn)的不斷獲取,開發(fā)者社區(qū)中將會出現(xiàn)最好的實(shí)踐經(jīng)驗(yàn)與指導(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)被注冊并處理,是很重要的,因?yàn)樵赬MLHttpRequest處理過程中并不能提供通常的漏斗旋轉(zhuǎn)光標(biāo)。一種方法是將“確認(rèn)”按扭上的文本替換為“正在更新中…”,以避免用戶在等待響應(yīng)時多次點(diǎn)擊按鈕。

      另一個問題是,用戶可能沒有注意到他們正在觀看的頁面已經(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í)際上,你在設(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核心知識。
    posted on 2005-11-09 18:37 我的萬花@ 閱讀(124) 評論(0)  編輯  收藏 所屬分類: 技術(shù)文章柜子

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲欧洲∨国产一区二区三区| 国产大片免费观看中文字幕| 亚洲精品乱码久久久久久中文字幕 | 中文字幕a∨在线乱码免费看| 夜色阁亚洲一区二区三区| 另类图片亚洲校园小说区| 最新69国产成人精品免费视频动漫| 2017亚洲男人天堂一| 成人免费午夜视频| 欧洲亚洲国产精华液| 亚洲高清偷拍一区二区三区| caoporm超免费公开视频| 久久亚洲国产精品五月天婷| 中国极品美軳免费观看| 亚洲成色999久久网站| 最近中文字幕mv免费高清视频8| 亚洲欧洲日产v特级毛片| 免费无码AV电影在线观看| 欧美日韩亚洲精品| 亚洲精品尤物yw在线影院| 成人影片一区免费观看| 亚洲欧洲另类春色校园小说| 成人au免费视频影院| 香蕉国产在线观看免费| 亚洲AV无码成人精品区在线观看| 最近2022中文字幕免费视频| 亚洲伊人久久大香线蕉结合| 国产午夜无码视频免费网站| 久久免费观看视频| 亚洲日本香蕉视频| 免费夜色污私人影院在线观看| 三级黄色在线免费观看| 亚洲明星合成图综合区在线| 国产一区二区三区免费视频| 三年片在线观看免费西瓜视频| 亚洲天堂福利视频| 亚洲性日韩精品一区二区三区| 亚洲黄色免费网址| 免费人成又黄又爽的视频在线电影| 亚洲精品私拍国产福利在线| 国产成人精品免费直播|