热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

防止ios6缓存AjaxPOST请求[duplicate]-PreventiOS6fromCachingAjaxPOSTRequests[duplicate]

PossibleDuplicate:IsSafarioniOS6caching$.ajaxresults?可能重复:ios6缓存的Safari$。ajax的结果吗?

Possible Duplicate:
Is Safari on iOS 6 caching $.ajax results?

可能重复:ios6缓存的Safari $。ajax的结果吗?

I have a hybrid application using PhoneGap that runs fine on Android and iOS. But when I started testing in iOS 6 I noticed that I am not getting server data for most of my ajax calls - instead I was getting the cached data from previous ajax calls.

我有一个使用PhoneGap的混合应用,在Android和iOS上运行良好。但是当我在ios6中开始测试时,我注意到我的大部分ajax调用都没有得到服务器数据——相反,我是从以前的ajax调用中获取缓存的数据。

So far I have tried the following options to disable cache -

到目前为止,我已经尝试了以下选项来禁用缓存-

  1. Include a timestamp as query string parameter
  2. 包含时间戳作为查询字符串参数
  3. $.ajaxSetup({ cache: false });
  4. 美元。ajaxSetup({缓存:假});
  5. Inside the ajax call no-cache = true
  6. 在ajax调用中,no-cache = true。
  7. $.ajaxPrefilter(function (options, originalOptions, jqXHR) { options.data = jQuery.param($.extend(originalOptions.data||{}, { timeStamp: new Date().getTime() })); });
  8. 美元。ajaxPrefilter(函数(选项、原始选项、jqXHR){选项。data = jQuery.param(.extend美元(originalOptions。数据||{},{时间戳:new Date().getTime()});});

But none of these seems to be working. I am invoke Java action classes from my ajax calls - will it have something to do with the reason why the methods listed above are failing?

但这些似乎都没有起作用。我正在从ajax调用中调用Java操作类——它是否与上面列出的方法失败的原因有关?

2 个解决方案

#1


0  

Read this thread

读这个线程

Is Safari on iOS 6 caching $.ajax results?

是ios6缓存的Safari $。ajax的结果吗?

You could disable the caching on webserver level and by using timestamps in the URL.

您可以在webserver级别上禁用缓存,并在URL中使用时间戳。

#2


4  

From here

从这里

How to fix it: There are various methods to prevent caching of requests. The recommended method is adding a no-cache header.

如何修复它:有各种方法可以防止缓存请求。推荐的方法是添加一个无缓存头。

This is how it is done.

这就是如何做到的。

jQuery:

jQuery:

Check for iOS 6.0 and set Ajax header like this.

检查iOS 6.0并设置Ajax header如下。

$.ajaxSetup({ cache: false });

ZeptoJS :

ZeptoJS:

Check for iOS 6.0 and set Ajax header like this.

检查iOS 6.0并设置Ajax header如下。

$.ajax({
type: 'POST',
headers : { "cache-control": "no-cache" },
url : ,
data:,
dataType : 'json',
success : function(responseText) {…}

Server side

服务器端

Java :

Java:

httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");

Make sure to add this at the top the page before any data is sent to the client.

在将任何数据发送给客户端之前,请确保在页面顶部添加此内容。

.NET

net

Response.Cache.SetNoStore();

Or

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);

PHP

PHP

header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.

推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • 解决Sharepoint 2013运行状况分析出现的“一个或多个服务器未响应”问题的方法
    本文介绍了解决Sharepoint 2013运行状况分析中出现的“一个或多个服务器未响应”问题的方法。对于有高要求的客户来说,系统检测问题的存在是不可接受的。文章详细描述了解决该问题的步骤,包括删除服务器、处理分布式缓存留下的记录以及使用代码等方法。同时还提供了相关关键词和错误提示信息,以帮助读者更好地理解和解决该问题。 ... [详细]
  • LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ... [详细]
  • 本文整理了Java中com.evernote.android.job.JobRequest.getTransientExtras()方法的一些代码示例,展示了 ... [详细]
  • 1.webkit内核中的一些私有的meta标签,这些meta标签在开发webapp时起到非常重要的作用(1) ... [详细]
  • css,背景,位置,y,background, ... [详细]
  • 《Axure新技能:自适应手机屏幕大小》相信不少人都已经看过,并对设置方法已经很熟悉了,但该教程只能适应iphone6的屏幕尺寸的比例&# ... [详细]
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
    本文旨在全面介绍Windows内存管理机制及C++内存分配实例中的内存映射文件。通过对内存映射文件的使用场合和与虚拟内存的区别进行解析,帮助读者更好地理解操作系统的内存管理机制。同时,本文还提供了相关章节的链接,方便读者深入学习Windows内存管理及C++内存分配实例的其他内容。 ... [详细]
author-avatar
陈hancox_894
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有