在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) {})