Caching ios5safari用超级缓存扼杀了Web开发

Caching ios5safari用超级缓存扼杀了Web开发,caching,ios5,safari,Caching,Ios5,Safari,好吧,也许这不会完全扼杀web开发。。。但这确实令人恼火 我最近一直在使用各种桌面和移动浏览器测试一个站点。到目前为止,唯一给我带来巨大麻烦的是运行在iPhone5上的Safari,它使用的缓存级别超出了我以前见过的几乎无法摆脱的缓存级别,我现在称之为超级缓存。这种超级缓存阻止了我测试我的站点,因为我无法测试任何更改——不是css样式、后端c#、前端javascript、aspx设计、nada。我尝试了以下方法来尝试清除此页面的缓存(单独或全部): 关闭Safari中的所有选项卡,然后完全关闭S

好吧,也许这不会完全扼杀web开发。。。但这确实令人恼火

我最近一直在使用各种桌面和移动浏览器测试一个站点。到目前为止,唯一给我带来巨大麻烦的是运行在iPhone5上的Safari,它使用的缓存级别超出了我以前见过的几乎无法摆脱的缓存级别,我现在称之为超级缓存。这种超级缓存阻止了我测试我的站点,因为我无法测试任何更改——不是css样式、后端c#、前端javascript、aspx设计、nada。我尝试了以下方法来尝试清除此页面的缓存(单独或全部):

  • 关闭Safari中的所有选项卡,然后完全关闭Safari(双击主页按钮,关闭Safari图标)

  • 设置->Safari->清除历史记录+设置->Safari=>清除cookie和数据。执行此操作后检查网站数据,确认没有任何内容,并显示0字节的存储数据

  • 完全关闭手机(不仅仅是睡眠)

  • 通过添加垃圾信息(如?random=pleasedontcacheme&random2=123)更改我网站的url

  • 将代码添加到我的站点以尝试阻止缓存。。。这当然不起作用,因为手机浏览器永远无法检索到这些更改

  • 简言之,测试目前已成为一场小小的噩梦。尽管任何关于如何实际销毁Safari令人讨厌的缓存的提示都将受到极大的赞赏,但我更感兴趣的是确保这不会在将来的开发过程中发生。所以我的问题是,对于当前的Safari浏览器,阻止它缓存网站的最佳方法是什么

    到目前为止,我已将以下内容添加到网站默认页面的页面加载中:

    HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
                HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
                HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
                  HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
                HttpContext.Current.Response.Cache.SetNoStore();
    
            Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate");
            Response.AppendHeader("Pragma", "no-cache");
            Response.AppendHeader("Expires", "0");
    
    我还看到其他人使用meta标记,尽管他们被描述为有点黑客。(如发现的那样)

    我仍在努力寻找重新控制iPhone缓存的方法,但与此同时,我想问那些可能对这一特定问题更有经验的人,上述方法在解决缓存问题方面的效果如何(主要是在开发过程中,但也很好地了解,以备将来参考)。或者,是否有其他解决方案对该浏览器/系统组合有帮助


    提前非常感谢您提供的任何提示或建议。=)

    你有没有想过?我也在处理超级缓存。无论我做什么,iOS模拟器都不会让文件研磨测试停止。你有没有找到什么好的信息?对任何提示也感兴趣?Safari甚至不会通过ajax调用我的服务器,因为它缓存了无效响应(可能是CORS头)。如果我更改协议(从http更改为https),它可以工作,但其他情况下…实际上发现了我的问题所在,由于在基本域中启用了严格的传输安全,页面被重定向到SSL。当然,只有当您访问了Safari的基本/根域以记住此规则时,这才有效。解释了为什么我在两个相同的设备上得到两个完全不同的结果。。。