jsonp 数据缓存
jsonp
是跨域调用数据的常用方法,但是由于 每次调用数据都请求服务器所以这一点很是令人烦恼, 虽然服务器可以什么都不做 直接返回 304, 但毕竟还是发起了一次请求
在jQuery
下jsonp
的简写方法如下:
$.getJSON("http://api.asilu.com/weather/?callback=?", function(s){ console.log(s); });这种写法,每次都会请求服务器数据,所以行不通,但是这种写法是最简单的
$.getJSON
行不通 就用 $.ajax
开启缓存试试
$.ajax({ url : 'http://api.asilu.com/weather/', dataType : "jsonp", cache: true, // 开启缓存 jsonp: 'callback', success : function(s){ console.log(s); } });在浏览器试试 还是白搭,这是肯定的 每次 请求服务器的 URL 查询 参数 都不同,肯定还是要 请求服务器数据
URL 查询参数 的变化主要就是 ?callback=jQuery*********
所以就有了本例的最终代码
$.ajax({ url : 'http://api.asilu.com/weather/', dataType : "jsonp", cache: true, jsonpCallback: "jsonpCallback", success : function(s){ console.log(s); } });
当然还有必不可少的服务单配合, 主要就是输出 HTTP 头的 Expires
/Cache-control
信息即可
本文出自简爱博客,转载时请注明出处及相应链接。