天天看點

jQuery中的cache : false到底有什麼用?

寫Ajax代碼寫了很多,但事實證明,程式設計水準的高低不在于代碼有沒有寫很多遍,而在于有沒有動腦子去思考。

很顯然,我在jQuery的cache : false問題上面就沒有動腦子思考過,直到今天才後知後覺。

以前,為了確定每一個Ajax請求不被緩存,于是在Ajax的請求URL後加上"?rand=" + Math.random(),,完全忽略了cache : false的感受。

現在,我重新認識到,在type : 'GET'的情況下cache : false本身要做的工作就是在請求URL後添加一個随機時間戳:

jQuery中的cache : false到底有什麼用?

好吧,我以前是多麼的愚蠢!

另外,在type : 'POST的情況下,cache : false就不需要指定了,因為post請求本身就不會參與緩存。

比較 GET POST

後退按鈕/重新整理 無害 資料會被重新送出(浏覽器應該告知使用者資料會被重新送出)。

書簽 可收藏為書簽 不可收藏為書簽

緩存 能被緩存 不能緩存

編碼類型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。為二進制資料使用多重編碼。

曆史 參數保留在浏覽器曆史中。 參數不會儲存在浏覽器曆史中。

對資料長度的限制 是的。當發送資料時,GET 方法向 URL 添加資料;URL 的長度是受限制的(URL 的最大長度是 2048 個字元)。 無限制。

對資料類型的限制 隻允許 ASCII 字元。 沒有限制。也允許二進制資料。

安全性 與 POST 相比,GET 的安全性較差,因為所發送的資料是 URL 的一部分。 在發送密碼或其他敏感資訊時絕不要使用 GET ! POST 比 GET 更安全,因為參數不會被儲存在浏覽器曆史或 web 伺服器日志中。

可見性 資料在 URL 中對所有人都是可見的。 資料不會顯示在 URL 中。

好了,現在是時候把以前在代碼裡寫的錯誤修複一下了。

繼續閱讀