這篇http://stackoverflow.com/questions/425854/jquery-ajax-request-failing-in-ie有講怎樣解決問題,主要原因是IE的Cache預設是開啟的,需要隔一段時間才會遞出請求,而上述的作法其實也就是讓request的URL每次都不同,在變數內塞個時間參數。
var d = new Date()
$.ajax({
url:"{{SITE_URL}}/service.ashx?_="+d.getTime(),
...Snip...
但經我測試後還是沒效果,.因為它是一天更新一次,如果要做到類似GMAIL即時後端抓取資料的效果,就要改成....
var d = new Date()
$.ajax({
url:"{{SITE_URL}}/service.ashx?_="+d.toTimeString(),
...Snip...
每秒鐘就給它更新一次,這樣雖會正常顯示,但會把USER端的cache塞爆了的問題。
正確的作法是要關上IE的cache,我們可以在service.ashx 內寫上
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write("ajax content test...");
Response.End();
這樣就算是IE6.0也會正常更新畫面了。
沒有留言:
張貼留言