博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery禁止Ajax请求缓存
阅读量:6249 次
发布时间:2019-06-22

本文共 854 字,大约阅读时间需要 2 分钟。

 

一 现象

 

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 neededif ( 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

你可能感兴趣的文章
IOS Exception 1(RangeText="[SKTexture]()")
查看>>
IOCP基础封装
查看>>
sass学习
查看>>
javascript基础篇:函数
查看>>
单调队列
查看>>
【原创】C#通用权限管理-程序安全检查,这些你一定要考虑到位
查看>>
Ubuntu完全教程,让你成为Ubuntu高手!
查看>>
vue父子通信的基本使用
查看>>
jquery.cookie 介绍 和 用法
查看>>
[CI] 使用Jenkins自动编译部署web应用
查看>>
SVN与TortoiseSVN实战:补丁详解
查看>>
Centes7 使用 xshell 登陆
查看>>
TestNG源代码分析:依赖管理的实现
查看>>
VMWare 安装时报错 tools-windows.msi failed报错解决办法
查看>>
java一些面试题
查看>>
如何使用dll和lib
查看>>
干货型up主
查看>>
文件与二进制流互转
查看>>
获取页面中所有dropdownlist类型控件
查看>>
【转自ITPUB】SYNONYM关于underlying table权限的小小发现
查看>>