AJAX(Asynchronous JavaScript and XML)是一種讓網頁可以在不重新整理整個頁面的情況下,與伺服器溝通、更新部分內容的技術。
比起傳統網頁請求改善了什麼?
AJAX 背後其實在做兩件事
問題是:發送請求到收到回應,中間需要「等待時間」(網路傳輸、伺服器處理都要花時間,可能是 50ms,也可能是 2 秒)。
JavaScript 是「單執行緒」的語言,也就是同一時間只能做一件事。如果請求要花 2 秒,JavaScript 又是「傻傻等在那邊」,那使用者在這 2 秒內整個網頁會完全卡住、不能點任何東西。
所以才需要「非同步」(Asynchronous)處理方式——讓 JavaScript 先去發送請求,然後繼續做其他事情(讓使用者可以正常操作頁面),等到伺服器真的回應了,才回頭處理那個結果
網路請求
簡單來說,網路請求就是你的裝置(客戶端,如手機、電腦)向伺服器索取或傳送資料的過程。當你打開瀏覽器輸入網址並按下 Enter,或者在 App 裡點擊按鈕載入新動態時,背後都是在向遠端的伺服器發出網路請求,伺服器收到後再將結果回傳
request與response
請求 (Request): 告訴伺服器你想做什麼。通常包含網址(目標位置)以及動作(Method)
回應 (Response): 伺服器處理完你的請求後,把資料(如網頁畫面、圖片、JSON 數據)傳回給你的裝置,並附帶狀態碼(例如成功取得的 200,或找不到頁面的 404 Not Found)
在Javascript裡可以透過寫程式碼執行網路請求,就不用像瀏覽器那樣貼上網址按Enter
在 Network 分頁的 Headers、Status、Preview,可以看出一來一回的細節
開發者工具(DevTools)的 Network(網路)
Network面板是監控網頁與伺服器之間所有資料傳輸的核心工具。透過它,您可以查看每一次請求的詳細資訊,主要包含以下幾大重點:
1. 請求總覽(Requests Overview)
2. 點進單一請求後的詳細分頁
3. 篩選與工具功能