經典面試題之:AJAX請求和普通HTTP請求區別?

瀏覽器 HTML JSON JavaScript XML 跳槽那些事兒 設計 程序員界的彭于晏 2019-05-18

首先最早是沒有Ajax請求的,只有普通的HTTP請求,這個時候發送一次HTTP請求,Server端就會計算後將數據放在一個HTML網頁上返回來,客戶端需要刷新網頁,也就是每次請求都刷新網頁。Ajax請求實現了返回xml或者json數據而不是html,然後支持在html不變情況下動態更新頁面內容而無需刷新。

這是HTTP和Ajax的區別。

以前我用Ajax只用了異步請求,就以為他倆的區別除了上述區別,還包括Ajax請求是異步的,HTTP是同步的,這種誤解當然是錯的。

不管傳統的HTTP請求還是Ajax請求,都有同步和異步兩種選項。

仍以Ajax請求為例,該請求最終通過JavaScript的XMLHttpRequest發送,這個請求對象實例化的時候第二個參數可以配置同步或異步,配置為同步之後會阻塞瀏覽器頁面的線程(也可能是進程),返回結果前客戶端不再響應用戶請求。配置為異步之後不會阻塞瀏覽器線程,繼續進行瀏覽器渲染和響應用戶操作,直到response返回後回調函數處理結果。

ajax請求:

經典面試題之:AJAX請求和普通HTTP請求區別?

普通請求 url請求

經典面試題之:AJAX請求和普通HTTP請求區別?

看倒數第二行有什麼不一樣???

發現ajax的請求,多了一個“X-Requested-With”屬性。

至於X-Requested-With的作用和設計的原因請自行了解,目前只知道它是區分ajax請求還是通過瀏覽器url來請求的

相關推薦

推薦中...