在ie系列下,$.get()方法在url位址固定時,會快取回傳結果,導致不可預料的問題。但在火狐下,則不會快取。
要解決問題有很多辦法,最直接的是把$.get()方法換成$.ajax(),然後設定cache:false即可。我不喜歡$.ajax()繁瑣的配置方式,可採取以下最簡單方式實現:
在$.get()的data後面加上新的隨機參數,如{data: mydata, stamp: Math.random() },由於每次資料不一樣,故請求後返回的資料不會緩存。
另外也可把$.get()改成$.post(),也可解決此問題。
一勞永逸的解決方法是設定全域參數,$.ajaxSetup({cache:false});這樣設定後,基本所有的get請求jquery都會自動加上_1948838字樣的附加參數,整體來說與上面的解決方法類似。
例如:
$.get("ProvinceListByCountryIDHandler.ashx", { "cid": $drpCountry.val(), "time": new Date() .getTime() }, function(data, returnStatus) {})