iT邦幫忙

2021 iThome 鐵人賽

DAY 1
1
Modern Web

ZK 30天速成系列 第 1

我想用 AJAX,但是...

現在使用者對網頁應用程式的要求越來越高,又要好看又要反應快。常見的做法是使用 AJAX 提升頁面反應時間,但為何要用 AJAX 呢?

為何要用 AJAX

早期使用 JSP 技術時,當你輸入完網頁上的表單按下送出時,你會發現畫面整個變空白,然後才出現後續的結果頁面。這就是標準的瀏覽器與網頁應用程式的互動方式,每次送出 HTTP 請求,應用程式就從伺服器送來一個完整的頁面,我們可以稱它是「以頁為單位的 (page-based)」溝通方式。而使用者必須等待完整頁面收到後才能繼續下一個動作,也就是使用者動作要跟 HTTP 請求同步 (synchronous)。

但當你使用 google 查詢時,一輸入第一個字,它就跳出一個下拉框列出推薦的相關詞,你會注意到畫面的其他部分並沒有變化,畫面也沒有變成空白,只有多了下拉框。若你繼續輸入第二、三個字,google 會根據你的輸入持續改變下拉框的推薦詞,你不用等待畫面的變化完成就可以輸入下一個字。這背後所使用的技術就是 AJAX。簡單來說就是透過 JavaScript 發出非同步的 (asynchronous) HTTP 請求到伺服器去取得部份要更新的資料後,再由 JavaScript 去更動目前頁面的部分內容。

採用 AJAX 有幾個好處:

  • 不會阻礙使用者操作。
    因為瀏覽器發出的是非同步 HTTP 請求,使用者不需要等待請求回傳仍可以操作當前的頁面。
  • 加快網頁反應速度。
    因為每次改動不需要重新載入整個頁面,只調整部分變動的頁面,使用者可以更快看到結果。而且每次伺服器只需傳送少量跟變動相關的的資料給瀏覽器,而不用傳送整個頁面的資料,因此可以降低傳輸量。
  • 瀏覽器不需安裝額外的 plugin
    先前有些技術如 flash (現在已經不被支援)也有這種非同步更新效果,不過需要使用者安裝額外的 plugin,而 ajax 需要的只是開啟 javascript,每個瀏覽器都能做到,減少使用者的麻煩。

整體來說,就是能讓使用者操作網頁應用程式時能有桌上型應用程式的體驗,大幅增進使用者體驗(UX)。或是你曾聽過單頁應用程式(single page application),也是利用同樣的技術打造而成。就現今技術而言,採用 WebSocket 也能得到同樣好處。

採用 AJAX 的障礙

雖然 AJAX 能帶來更好的使用者體驗,但採用 AJAX 要克服許多技術上的障礙,首先要懂 JavaScript,並用它來操作 DOM ,這還加上瀏覽器相關的知識,若是你要畫面好看些,你還得要懂 CSS 。再來要設計一個跟伺服器溝通的模式與資料交換格式,而伺服器端也要實作相應的程式跟瀏覽器溝通。但如果你或你的同事都是 Java EE 背景的工程師,多半都不熟悉前端相關的技術,甚至也沒時間去熟悉前端技術,因為系統本身應用領域的問題(如金融、倉管等...)都解決不完了,那還有時間來弄這無關的技術呢?

使用 ZK UI 框架 就能幫你大量省去處理前端技術的煩惱。


下一篇
讓Java後端工程師免煩惱前端的 UI 框架
系列文
ZK 30天速成30

尚未有邦友留言

立即登入留言