Ajax的思考

Ajax被各種媒體宣傳的太過火暴,拋開衆多的宣傳泡沫,我們來認真的思考一下,Ajax到底是什麼?它能用來幹什麼?它應該用來幹什麼?
Ajax是Asynchronous JavaScript and XML的縮寫,其中有三個關鍵詞:
1 Asynchronous
2 JavaScript
3 XML
這三個關鍵詞可以這麼理解:
1 交互是異步的
2 在客戶端用JavaScript接收、發送、展示數據
3 用XML作爲傳輸介質
(注:嚴謹的說1,2,3都不一定,這裏只考慮一般的狀況)
那麼這種性質的Ajax能用來做些什麼呢?

可以用這麼一段話來描述一下它的作用:
頁面中的某個事件(點擊、選擇等)被JavaScript代碼捕捉到,JavaScript對事件涉及到的數據進行封裝,封裝完成後以XML形式發送到服務器端,服務器端根據所給數據執行相應的查詢處理封裝出一份結果返回給客戶端,客戶端JavaScript接收到返回結果後解析並展現在客戶端。

如果你理解了這段話,那麼你應該會發現這和我們傳統的“頁面提交模型”很像。

差別其實就是這個Asynchronous,也就是說客戶端數據封裝後的發送是異步執行的,通俗一點講就是:客戶端向服務器端發送請求數據後,客戶端這邊該幹什麼還幹什麼,你看不出什麼變化。當結果從服務器端返回後,客戶端JavaScript得到結果,神不知鬼不覺的把結果放在頁面的某個地方。

這樣你說Ajax能用來幹什麼?可以說傳統的“頁面提交模型”能幹的事情它都能幹。
但是它能幹未必就意味着我們就要這麼幹。試想,用戶註冊頁面用Ajax實現會是怎麼個場景?

最後,它應該用來幹什麼?
1 二級或N級聯動列表
如果下一級列表數據依賴於上一級選擇,並且數據是動態不定的,那麼這種情況用Ajax實現就會很自然。
2 用戶界面輸入輔助
你在Google中輸入一個或幾個字,就會出現一個下拉列表供你選擇比較熱門的相關詞語。
3 數據校驗
當焦點離開某控件時判斷控件中數據是否合法。

以上三種情況是我認爲比較適合使用Ajax的代表。當然Ajax還有更多的應用,不過從上面我們“可見一斑”。

基於上述各點,我認爲Ajax能爲Web程序添加很多光彩,但是想要顛覆甚至取代傳統Web編程模型,那是不可能完成的任務。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章