jQuery禁止Ajax请求缓存
生活随笔
收集整理的這篇文章主要介紹了
jQuery禁止Ajax请求缓存
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
一 現象
?
get請求在有些瀏覽器中會緩存。瀏覽器不會發送請求,而是使用上次請求獲取到的結果。
post請求不會緩存。每次都會發送請求。
?
二 解決?
?
jQuery提供了禁止Ajax請求緩存的方法:
$.ajax({type: "get",url: "http://www.baidu.com?_=",cache: false });它的工作原理是在GET請求參數中附加時間戳"_={timestamp}"
?
三 源碼
?
jQuery.extend( {now: function() { // 獲取毫秒數return +( new Date() );} } );var nonce = jQuery.now(); // 加載jQuery腳本文件時,獲取時間戳。使用時每次加一。var rquery = ( /\?/ ); // 檢測問號var rts = /([?&])_=[^&]*/; // 檢測下劃線參數// 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// 如果有下劃線參數,就更新它cacheURL.replace( rts, "$1_=" + nonce++ ) :// Otherwise add one to the end// 如果沒有下劃線參數,就添加它cacheURL + ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + nonce++; }?
轉載于:https://www.cnblogs.com/sea-breeze/p/10232081.html
總結
以上是生活随笔為你收集整理的jQuery禁止Ajax请求缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 架构探险笔记10-框架优化之文件上传
- 下一篇: 红草绿叶