這裏顯示兩個版本的差異處。
| Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
|
webdesign:head_rush_ajax [2007/02/26 00:43] wenpei |
webdesign:head_rush_ajax [2007/02/26 01:08] (目前版本) wenpei |
||
|---|---|---|---|
| 行 34: | 行 34: | ||
| </code> | </code> | ||
| + | |||
| 行 41: | 行 42: | ||
| // createRequest(); // 已被靜態執行 | // createRequest(); // 已被靜態執行 | ||
| var url = "getUpdatedBoardSales-ajax.php"; | var url = "getUpdatedBoardSales-ajax.php"; | ||
| - | url = url + "?dummy=" + new Date().getTime(); | + | url = url + "?dummy=" + new Date().getTime(); // 解決瀏覽器快取問題 |
| createRequest(); | createRequest(); | ||
| request.open("GET", url, true); // 初始化連線,將資料以 GET 的方式送到伺服器上給 url 檔案處理,true 表非同步 | request.open("GET", url, true); // 初始化連線,將資料以 GET 的方式送到伺服器上給 url 檔案處理,true 表非同步 | ||
| 行 49: | 行 50: | ||
| </code> | </code> | ||
| - | * 四種備妥狀態: | + | 四種備妥狀態: |
| - | - 連線初始化 | + | 0. 尚未初始化 |
| - | - 正在處理 | + | 1. 連線已經初始化 |
| - | - 伺服器即將完成請求 | + | 2. 正在處理 |
| - | - 完成 | + | 3. 伺服器即將完成請求,將資料傳給瀏覽器 |
| + | 4. 完成,可透過請求物件的 responseText 屬性取得回應資料 | ||
| * 每次備妥狀態一改變,瀏覽器都會去執行 onreadystatechange 指定的回呼函式 | * 每次備妥狀態一改變,瀏覽器都會去執行 onreadystatechange 指定的回呼函式 | ||
| 行 87: | 行 90: | ||
| } | } | ||
| </code> | </code> | ||
| + | |||
| + | ==== IE、Opera 瀏覽器的快取問題 ==== | ||
| + | 若 url 一樣時,瀏覽器會快取,再次送出請求(按下 button)時,瀏覽器會直接拿之前快取的資料,不會真正再向伺服器請求一次資料,造成資料無法更新。 | ||
| + | |||
| + | 在 url 放入一些無意義的假參數(如時間),即可每次產生不同的 url。 | ||
| + | |||
| + | url = url + "?dummy=" + new Date().getTime(); | ||