因為一直對ajax都有一種望而生畏的感覺,所以一直也沒仔細的研究過,好多事情都一樣當你一開始覺得很難的時候它的難度就會比你預想的還難.大概這就是心理作用的影響吧.
今天要做乙個無重新整理驗證使用者名稱是否重複的功能不得不用ajax了所以也就硬著頭皮看了一下,本來看的是jquery的ajax的使用,但是前面介紹了一下傳統的ajax,看了一下竟然沒有想象的那麼難,於是試著用傳統的方式做了乙個小驗證.
**如下:
遇到的問題:
1.驗證無效,用alert打了一下斷點發現xmlhttpreq.status的值是500,於是進入controllerpage.aspx,發現是因為這個頁面會報黃頁,改正bug後就好了.
2.新增新的使用者後再新增相同的使用者名稱結果驗證的提示還是可以使用,但是如果重新整理一下controllerpage.aspx後驗證功能就又好使了,我就鬱悶了,後來發現是快取的問題,解決方式如下
加上了乙個隨時都在變的時間戳就好了,快取問題得以解決,在這裡要感謝一位大神同事的幫助.
上面是我遇到的問題以及解決方式,mark一下,希望對遇到此問題的同學有用.
ajax要使用時間戳提交 及時更新的
當你的ajax需要的資料是及時更新的,也就是說在沒有重新整理頁面的情況下,得到其他操作的新資料,你的ajax提交url中加入乙個時間戳,這樣,就可以避免頁面使用快取了,原理是:時間戳本事就是乙個隨時更新的變數,時間戳只是乙個叫法,你可以這麼理解:你的url中加了乙個隨時更新的變數,,那麼,提交時是不會使用快取的。
var url = "insertdata.jsp?textname="+nameadd+"&date="+new date().gettime();
var url = "insertdata.jsp?textname="+nameadd+"&date="+math.random();
ajax清空快取的問題
在ajax的應用中,當使用者訪問一次後,再進行訪問當xmlhttprequest請求不變的時,在ie中會出現這樣的現象,那就是取資料不會到伺服器端取,而是直接從ie的快取中取,則會就是ie的快取問題。在ajax中解決快取的問題採用時間戳的方式,即為每個xnlhttprequest請求後面加乙個時間戳的標誌,從而保證每次請求都是新的從而解決ie快取問題。
ajax 快取問題
有關頁面快取問題 這個問題上網找了好多 但發覺各種解決方法,都彼此分離,沒有一篇統一的解決方法,本人近日,也遇到了頁面快取的問題,根據網上各頁面快取的解答,做了乙個總結。1.伺服器端快取的問題,防止jsp頁面快取 view plaincopy to clipboardprint?將過期日期設定為乙個...
Ajax的IE快取問題
ajax的ie快取問題,會造成用open時用get方法不能重複提交。解決的辦法有以下幾種 1.客戶端在url後新增隨機數.new date gettime 或者math.random 或者送請求前加上 或者用post方法提交 2.伺服器端禁用快取.response.setheader pragma ...
jquery的ajax快取問題
jquery的ajax請求預設請求cache是true 也就是開啟的,datatype為script和jsonp時預設為false。現在我要在瀏覽器裡讀取快取,因為ajax請求的資料很大,請求一次就夠了。但是問題來了,在ff裡面,是沒有ajax快取的,也就是每次都會觸發ajax請求,這點和ie不一樣...