我使用一些GeoIP服务在页面上放置国家/地区标记,具体取决于国家/地区IP。我需要为网站上的所有页面缓存JSON响应。
将此代码放入header.php
:
$.getJSON('http://smart-ip.net/geoip-json?callback=?', function(data) {
$('#flag').html("<a class='fancybox-inline int' href='#international'><img src='/images/flags/"+data.countryCode+".png'></a>");
}
是否可以将其缓存$.ajaxSetup({ cache: true })
?-似乎不起作用。
或者使用HTML5 localStorage可能更好,但是我不确定该怎么做。
我也尝试了JSONCache插件,但是对我来说不起作用。
您可以这样使用localStorage:
var smartIp = JSON.parse(localStorage.getItem('smartIp'));
if (!smartIp) $.getJSON('http://smart-ip.net/geoip-json?callback=?', function (data) {
smartIp = localStorage.setItem('smartIp', JSON.stringify(data));
});
演示
因此,在您的特定情况下,应在header.php
页面中使用以下代码:
var smartIp = JSON.parse(localStorage.getItem('smartIp'));
if (!smartIp) $.getJSON('http://smart-ip.net/geoip-json?callback=?', function (data) {
smartIp = localStorage.setItem('smartIp', JSON.stringify(data));
$('#flag').html("<a class='fancybox-inline int' href='#international'><img src='/images/flags/" + data.countryCode + ".png'></a>");
});
else $('#flag').html("<a class='fancybox-inline int' href='#international'><img src='/images/flags/" + smartIp.countryCode + ".png'></a>");
我尝试使用ETAG从api请求缓存json响应。我调用类似http://localhost:3000/api/config的代码,并获取: Thx响应。
问题内容: 我想确保浏览器永远不会缓存服务器的响应,这样即使发出两个相同的请求(相隔一纳秒),也始终会与服务器联系。这是实现此目标的正确方法: 谢谢唐 问题答案: 不,那不是正确的方法。这是正确的方法: 您可能会看到其他人在建议其他条目/属性,但是当至少提及上述内容时,它们是完全不相关的。 更改后,请不要忘记在测试之前清除浏览器缓存。 也可以看看: 网站站长缓存教程
问题内容: 我正在使用以下代码从服务器提取简单的JSON提要: 有用。但是,在更改JSON文件并验证是否在浏览器中进行了更改之后,当我再次运行该应用程序时,仍会得到先前的响应。 看来AFNetworking正在某种程度上缓存旧的响应。我不要这种行为。我想下载当前的提要。是否需要某种类型的设置或参数来关闭缓存? 问题答案: 简而言之,只需定义您的AFNetworking经理即可: 请享用!
问题内容: 我有以下代码对URL进行GET请求: 但是返回的结果并不总是能反映出来。例如,我对响应进行了更改,吐出了堆栈跟踪,但是当我单击搜索按钮时,堆栈跟踪没有出现。我查看了控制ajax响应的基础PHP代码,它具有正确的代码,直接访问页面显示了正确的结果,但.load返回的输出是旧的。 如果我关闭浏览器并重新打开它,它将运行一次,然后开始返回陈旧的信息。我可以通过jQuery控制它,还是需要PH
我有从我的网页生成的AJAX POST请求,可能有多个POST请求具有相同的POST数据。但是响应可能会有所不同,我希望确保我没有得到这些请求的缓存响应。我需要每个请求点击网页。 我假设对POST请求的响应不会被缓存,这对吗?
在React Native应用程序中实现以下场景的最佳方式是什么? 向服务器发出HTTP请求,获取JSON响应和ETag头 保存此JSON响应的方式即使在用户重新启动应用程序后也会持续 每当重复此HTTP请求时,发送If-None-Match头。 当您得到“未修改”响应时,请使用持久化缓存中的版本 当您得到“成功”响应(表示响应已更改)时,使持久化缓存无效,保存新响应 React Native有现