這裏顯示兩個版本的差異處。
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(); |