jQuery禁止Ajax请求缓存
生活随笔
收集整理的這篇文章主要介紹了
jQuery禁止Ajax请求缓存
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?
一 現(xiàn)象
?
get請(qǐng)求在有些瀏覽器中會(huì)緩存。瀏覽器不會(huì)發(fā)送請(qǐng)求,而是使用上次請(qǐng)求獲取到的結(jié)果。
post請(qǐng)求不會(huì)緩存。每次都會(huì)發(fā)送請(qǐng)求。
?
二 解決?
?
jQuery提供了禁止Ajax請(qǐng)求緩存的方法:
$.ajax({type: "get",url: "http://www.baidu.com?_=",cache: false });它的工作原理是在GET請(qǐng)求參數(shù)中附加時(shí)間戳"_={timestamp}"
?
三 源碼
?
jQuery.extend( {now: function() { // 獲取毫秒數(shù)return +( new Date() );} } );var nonce = jQuery.now(); // 加載jQuery腳本文件時(shí),獲取時(shí)間戳。使用時(shí)每次加一。var rquery = ( /\?/ ); // 檢測(cè)問(wèn)號(hào)var rts = /([?&])_=[^&]*/; // 檢測(cè)下劃線參數(shù)// Add anti-cache in url if needed if ( s.cache === false ) {s.url = rts.test( cacheURL ) ?// If there is already a '_' parameter, set its value// 如果有下劃線參數(shù),就更新它cacheURL.replace( rts, "$1_=" + nonce++ ) :// Otherwise add one to the end// 如果沒(méi)有下劃線參數(shù),就添加它cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; }?
轉(zhuǎn)載于:https://www.cnblogs.com/sea-breeze/p/10232081.html
總結(jié)
以上是生活随笔為你收集整理的jQuery禁止Ajax请求缓存的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 架构探险笔记10-框架优化之文件上传
- 下一篇: 梦到捉螃蟹是什么意思周公解梦