作者henry4343 (henry)
看板Ajax
標題[問題] Ajax定義請教?
時間Fri Jul 12 10:30:05 2013
各位好
因為本身沒有寫過Web應用 目前正在學習中
看到Ajax這個名詞,查了一下之後大概知道他是什麼東西
希望釐清一些觀念,看看Ajax這個東西跟我想的是不是一樣
在網路上查到一些關於Ajax的定義是:
Asynchronous JavaScript XMLHttpRequest,簡單說來就是非同步的 XMLHttpRequest。
如果我們是採用同步式的 XMLHttpRequest,整個頁面必須等到 Server 傳回資料之後,
才會繼續處理
如果是非同步 (Asynchronous) 我們則可以 setTimeout (計時器)為例,
當執行了 setTimeout,不會有任何的等待時間、而會繼續執行下面的程式碼,
等待時間到後,才會執行指定的 function。如果我們採用非同步式的 XMLHttpRequest,
我們就不需要等待 Server 端傳送資料完畢,使用者仍然可以在頁面上繼續動作。
這不就是一般的multi thread機制嗎?
以app為例,會把處理資料的部份丟入另一個thread執行,然後等thread執行
完以後在顯示在UI上,這樣UI就不會卡死。
不知道這樣解釋對不對?
感謝各位回答了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.11.17.212
1F:→ braveslave:no js是 single thread 07/12 11:24
2F:推 csf0427:不對喔,非同步指的是網頁可以局部更新,不用全網頁載入 07/12 12:19
3F:推 s25g5d4:還是單一執行緒 只是把工作推遲而已 這中間可以去做別的事 07/12 13:52
4F:→ henry4343:所以Ajax指的只是一種概念而不是某種語言還是特定寫法嗎 07/12 19:17
5F:推 mrbigmouth:ajax現在算概念了沒錯 基本上講ajax時重點不在非同步 07/12 21:17
6F:→ mrbigmouth:而在於 "以javascript去讀取網路資源回來現在的網頁" 07/12 21:17
7F:→ mrbigmouth:如果要講非同步概念 比較接近的是callback的利用 07/12 21:18
8F:推 mrbigmouth:現在的ajax大多數時候...load回來的都不是XML.... 07/12 21:20
9F:→ mrbigmouth:ajax去讀json、html、plain text的機率要比xml多很多 07/12 21:21
10F:推 s25g5d4:以前我也是XML派der 直到我膝蓋中了一箭... 07/12 21:52
11F:推 pttnews:不對喔 ajax 可以同步亦可以非同步,無須下setTimeout 07/16 13:41
12F:→ pttnews:才會執行指定的 function 07/16 13:41