纯 js 让浏览器不缓存 ajax 请求
开发「bufpay.com 个人即时到账收款平台」支付页面需要用到 ajax 轮询订单的支付状态。
现在浏览器对 ajax 的缓存策略遵循 http response header 里面的缓存设置,为了保证每次轮询需要获取最新的订单信息,我们需要对 ajax 请求做一些修改。
如果你使用 jquery 可以直接在 document ready 的时候用
$.ajaxSetup({ cache: false });
来让每个 ajax 请求都在后面添加时间戳。
bufpay.com的支付页面为了最快的加载速度,就没有使用任何第三方库(jquery 库压缩后都有大概100K),所以这里就手动在每个 ajax 请求里面添加时间戳,代码如下:
//纯 js 实现 ajax 请求
var ajax = function(url, method, callback, params = null) {
var obj;
try {
obj = new XMLHttpRequest();
} catch(e){
try {
obj = new ActiveXObject("Msxml2.XMLHTTP");
} catch(e) {
try {
obj = new ActiveXObject("Microsoft.XMLHTTP");
} catch(e) {
alert("Your browser does not support Ajax.");
return false;
};
};
};
obj.onreadystatechange = function() {
if(obj.readyState == 4) {
callback(obj);
};
};
obj.open(method, url, true);
obj.send(params);
return obj;
}; //请求的时候
var obj = ajax("{{domain}}/api/query/{{aoid}}?_=" + new Date().getTime(), "GET", function(obj) {
// do something
})
这样,就可以啦。
插播广告 ✧(≖ ◡ ≖✿)嘿嘿
纯 js 让浏览器不缓存 ajax 请求的更多相关文章
- JS 点击元素发ajax请求 打开一个新窗口
JS 点击元素发ajax请求 打开一个新窗口 经常在项目中会碰到这样的需求,点击某个元素后,需要发ajax请求,请求成功以后,开发需要把链接传给前端(或者说请求成功后打开新窗口),前端需要通过新窗口打 ...
- 唯独ie浏览器缓存ajax请求
用fiddler调试http请求,在ie浏览器下,如果请求命中缓存,fiddler不会包含该请求.但是在chrome下会包含缓存的请求,Result显示为304. ie浏览器还会缓存通过ajax请求的 ...
- 2.jquery在js中写标准的ajax请求
$(function(){ $.ajax({ url:"http://www.microsoft.com", //请求的url地址 dataType:"json" ...
- 纯js实现瀑布流布局及ajax动态新增数据
本文用纯js代码手写一个瀑布流网页效果,初步实现一个基本的瀑布流布局,以及滚动到底部后模拟ajax数据加载新图片功能. 缺点: 1. 程序不是响应式,不能实时调整页面宽度: 2. 程序中当新增ajax ...
- 论如何把JS踩在脚下 —— JQuery基础及Ajax请求详解
一.什么是JQuery? JQuery是一种JavaScript框架,是一堆大神搞出来的能够让前端程序猿敲更少代码.实现更多功能的工具(在此,跪谢各位JQuery开发大大们!!!).JQuery的使用 ...
- MVC中用View.bag保存json字符串。在js中使用,不用ajax请求。。。。
有时候我们只需要使用一次json数据,这时候直接在后台查出json,然后用view.bag传到前台使用,就会很方便..(在前台用ajax请求的话,感觉有点多余..) 上代码 后台: public Ac ...
- JS获取页面数据执行Ajax请求
下面这个例子展示了如何使用js获取页面中元素的值,并且将这些值作为参数执行Ajax请求. $("#submit-task").bind("click", fun ...
- h5-localStorage实现缓存ajax请求数据
使用背景:要实现每次鼠标hover“能力雷达”,则显示能力雷达图(通过ajax请求数据实现雷达图数据显示),所以每次hover都去请求ajax会影响性能,因此这里要用到本地缓存. 实现: 此处是通过传 ...
- js中使用队列发送ajax请求
最近,项目中需要按照先后顺序发送ajax请求,并且在一次请求结束后才能发起下一次,不然就会导致逻辑错误. 解决办法是定义一个数组,保存ajax请求数据. 以下使用extjs4定义一个类 Ext.def ...
随机推荐
- (C# 正则表达式)判断匹配, 提取字符串或数值
string s = "if ( \"ch\" == \"os\" ) "; string pattern = @"if\s*\( ...
- named 快速部署及主机记录普及
实验环境centos7.2,仅供参考 yum -y install epel-release --安装最新yum配置源 cd /etc/yum.repos.d/ # wget http://re ...
- centos 克隆系统放到别的机器上后出现网卡启动不了的情况
1. Remove Network Manager from startup Services. #chkconfig NetworkManager off 2. Add Default Net ...
- 旋转动画用控件RotateView
旋转动画用控件RotateView 最终效果: 源码: RotateView.h 与 RotateView.m // // RotateView.h // RotateAnimationView // ...
- IP及DNS设置(Netsh)
#根据连接状态查找使用中网卡gwmi win32_networkadapter -filter "NetConnectionStatus = 2"#根据是否配置网关查找使用中网卡$ ...
- CVE-2015-1642 POC
月初,玄武实验室的“每日安全动态”推送了一篇office UAF漏洞利用的文章,之前对office上UAF漏洞利用占位问题有些疑问,刚好就借助这篇文章重现了一下.其中堆喷射部分不是特别稳定,漏洞成因和 ...
- photoshopcs6破解补丁用来干嘛的
photoshopcs6破解补丁为 Adobe CS6 系列软件通用破解补丁,亲测可用,终于能用了不再出现那个烦人的购买页面了,cs6破解补丁解压后得到32和64两个文件夹,根据自己的系统类型选择,6 ...
- 如何在Windows 7/8/10中使用热键来调整音量?
有时,您需要一个热键来调整Windows PC中的音量.例如:播放全屏视频或游戏时需要调整音量. 有一个简单的方法可以做到: 安装并运行Perfect Hotkey软件. 配置键盘快捷键以进行音量 ...
- LDA相关论文汇总
转:http://blog.csdn.net/pirage/article/details/9467547 LDA理论 David M. Blei, Andrew Y. Ng, and Michael ...
- UOJ #62. 【UR #5】怎样跑得更快
题目分析 显然不可能高斯消元. 考虑反演. \(b_i=\sum\limits_{j=1}^n\gcd(i,j)^C\cdot \text{lcm}(i,j)^D\cdot x_j\) \(b_i=\ ...