同步與非同步並非字面上的意思,這樣說好了,同步就像在打電話,對方拋了一個話題,就算一時傻住不知道要怎麼回應,也必須等你硬著頭皮回點話,結束這個尷尬的話題,才能開啟另一個話題。
而非同步就像寫email,從email接到一個困難的任務,不用馬上給回覆,可以花點時間想一想,喝個咖啡醒醒腦,冷靜之後再回個適合答案,也就是接到需求之後,可以先做其他事,等準備好再回應,這就是非同步。
如果我開了某個網頁,其實如果三秒內沒有回應,我就會想要關掉它了,現代人的耐心就是這麼有限,但瀏覽網頁時,常常會有一些"任務"是必須花點時間的,比如說載入一張圖片,跟遠端伺服器要一些資料來渲染,這時候如果如果只有用同步的方式來處理網頁,就會讓使用者關掉網頁而失去被瀏覽的機會。
Ajax(Asynchronous JavaScript and XML)是一種網頁開發技術,透過使用JavaScript非同步語法與XML(一種用來傳遞和儲存資料的格式,現在通常改使用JSON格式),對網頁進行異步數據請求和傳遞的技術,也就是說,當使用者按下網頁中的某個按鍵,對網頁提出某個要求時,會以非同步的方式來處理,來避免畫面一直轉圈圈的情況。
我覺得我好像開始走歪了...但怎麼感覺還不錯...(遮臉)