Ajax進階程式設計:提交節流

來源:互聯網
上載者:User

預先擷取是一種從伺服器擷取資料的模式;Ajax解決方案的另一方面是向伺服器發送資料。由於想避 免頁面重新整理,這對於發送使用者資料時顯得更為重要。在傳統的網站或Web應用程式中,每次點擊都會向服 務器發送一個請求,因此伺服器總是知道用戶端的行為。而在Ajax模型中,使用者與網站或應用程式互動 時,並非每一次點擊都會產生請求。

一種解決方案是向傳統的Web解決方案一樣,在使用者每次操作時都向伺服器發送資料。因此,當使用者 輸入一個字母時,該字母就會立即發給伺服器。在輸入每個字母時都將重複這個處理過程。這種方法所 存在的問題是,在很短的時間內可能建立大量的請求,這不僅可能引起伺服器端的問題,也可能在每個 請求發出和處理的過程中使得使用者介面變得很慢。提交節流(Submission Throttling)設計模式則是解決 這個問題的另一種方法。

使用提交節流模式,可以將要發送到伺服器端的資料存入用戶端的緩衝中,然後在預定的時間一次性 發送資料。大名鼎鼎的 Google Suggest就是這樣的一個例子。它並沒有在輸入每個字元時發送請求,而 是等待一個特定的時間後再將文字框中所有當前的字元一次性發送到伺服器。從輸入到發送的處理過程 進行了精細的調整,使使用者根本感覺不到延遲。提交節流在一定程度上提高了Google Suggest的速度。

提交節流通常要麼在網站或應用程式第一次裝載時,要麼當出現一個特定的使用者操作時開始。緊接著 ,將調用一個用戶端的函數來對資料進行緩衝處理。時常檢查使用者的狀態看其是否處於空閑(idle)狀態( 以避免與使用者介面衝突)。如果使用者仍然在操作,那麼繼續收集資料。當使用者空閑了,則說明他已不再執 行操作,就該決定是否發送資料了。確定的方法取決於具體的使用情境;或者希望收集到的資料達到一定 數量才發送,或者每當使用者空閑時就發送。在資料發送之後,應用程式通常將繼續收集資料,直到收到 了伺服器的響應或者一些使用者操作中止了資料收集的過程。圖3-2描述了這個過程。

圖 3-2

提交節流模式一般從不用於關鍵任務的資料。如果數必須在一個特定的時間範圍內傳送到伺服器,最 好還是採用傳統的表單,以確保資訊準確及時的傳送。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.