我正在尝试缓存由Retrofit(v 1.9.0)和OkHttp(2.3.0)完成的http调用的响应.如果我尝试在没有互联网的情况下拨打电话,它总是会拨打网络电话java.net.UnknownHostException.
RESTClient实现
public class RestClient {
public static final String BASE_URL = "http://something.example.net/JSONService";
private com.ucc.application.rest.ApiService apiService;
public RestClient() {
Gson gson = new GsonBuilder()
.setDateFormat("yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'SSS'Z'")
.create();
RequestInterceptor requestInterceptor = new RequestInterceptor() {
@Override
public void intercept(RequestFacade request) {
request.addHeader("Accept", "application/json");
int maxAge = 60 * 60;
request.addHeader("Cache-Control", "public, max-age=" + maxAge);
}
};
RestAdapter restAdapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(BASE_URL)
.setClient(new OkClient(OkHttpSingleTonClass.getOkHttpClient()))
.setConverter(new GsonConverter(gson))
.setRequestInterceptor(requestInterceptor)
.build();
apiService = restAdapter.create(com.ucc.application.rest.ApiService.class);
}
public com.ucc.application.rest.ApiService getApiService() {
return apiService;
} …Run Code Online (Sandbox Code Playgroud) 我正在构建一个ASP.NET /Umbraco驱动的网站,它是通过实体框架驱动的非常自定义的数据,我们不得不缓存相当多的数据查询(例如按关键字搜索),因为它是一个繁忙的网站.
但是当用户创建新的数据条目时,我需要清除所有缓存的查询(搜索等..),以便结果中可以使用新条目.
所以在我的创建,删除和更新方法中,我调用以下方法:
public static void ClearCacheItems()
{
var enumerator = HttpContext.Current.Cache.GetEnumerator();
while (enumerator.MoveNext())
{
HttpContext.Current.Cache.Remove(enumerator.Key.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
这真的很糟糕吗?我看不出我应该如何清除缓存的项目?
我想向用户提供最新的网站内容,但也要快速加载.通过研究,我发现人们建议使用缓存来加速加载.
那么我需要在3天后添加到我的网站"覆盖"缓存以显示最新内容?
我创建了一个应用程序,vue-cli然后我构建了dist用于生产的文件夹。
该应用程序IIS使用 Flask 后端部署并且运行良好。
当我必须进行一些更改并且必须重做部署时,就会出现问题。在此之后,用户打电话给我,因为应用程序不起作用,但如果我清除了 chrome 缓存,应用程序又可以正常工作了。
我该如何解决这个问题?当我发布新的应用程序版本时,是否有自动清除 Chrome 缓存的方法?
谢谢
我的 dist 文件夹
部署:在 IIS 上复制和粘贴文件夹 dist
如果 dist 文件夹中的文件正确,可能问题出在 axios 缓存中?我也做了一些改变来休息 apis
我们有一个带url路由的Webforms项目.我已经为图像和css文件定义了异常路由
routes.Add("IgnoreImages", new Route("img/{*pathInfo}", new StopRoutingHandler()));
routes.Add("IgnoreCss", new Route("css/{*pathInfo}", new StopRoutingHandler()));
Run Code Online (Sandbox Code Playgroud)
所以静态文件应该由IIS直接提供,并且应该绕过路由.
使用Fiddler检查图像的响应时,Cache标题下的唯一键是Date.缺少的是Cache-control:max:age键.如何为静态文件指定缓存策略?该应用程序在IIS7.5上运行.
如果您无法更改引用该文件的URI(例如,无法添加时间戳参数),是否有办法强制客户端缓存重新加载HTML文件?
这是我的情况:
example.com/page.html哪些调用script.jsexample.com/page.html无法更改(无插件更新)page.html已经变了.我需要page.html从用户的缓存中清除旧的,以便新的page.html可以加载.有任何想法吗?htaccess的?旧的和新的page.html呼叫的PHP API ?
谢谢!
我正在尝试在开发过程中为我的JS文件设置合理的缓存过期.我有标准设置,HTML,CSS和JS都在static目录下.
该文档也提到这一点,但我的生活,我不能得到这个工作.我先尝试过隐含的两种方法
class MyFlask(flask.Flask):
def get_send_file_max_age(self, name):
if name.lower().endswith('.js'):
return 60
return flask.Flask.get_send_file_max_age(self, name)
app = MyFlask(__name__)
Run Code Online (Sandbox Code Playgroud)
和
app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 60
Run Code Online (Sandbox Code Playgroud)
两者都没有效果,我在/ static下的JS文件仍然会返回默认的缓存超时,
Cache-Control: public, max-age=43200
Run Code Online (Sandbox Code Playgroud)
任何指针赞赏.
在浏览器中下载JNLP后,它会被缓存,因此不需要再次下载,这很好.但是,因此,如果我更新JNLP使用的JAR,用户仍将看到缓存中的旧版本应用程序.
您可以通过在终端中运行它来清除缓存:
javaws -uninstall
Run Code Online (Sandbox Code Playgroud)
但很明显,当您的更新准备就绪时,用户无法运行此命令.它应该比这更无缝.
一个想法是更改jnlp文件名,以便下载新文件,如MyJWS-01.jnlp,以包含版本号.
还有其他方法吗?
我阅读了http://code.google.com/speed/page-speed/docs/caching.html.它说代理服务器可以缓存cookie.我需要澄清一下.
假设我的文件有这个标题:Cache-Control "max-age=604800, public"
Q.1.使用此标头,当访问静态文件时,来自个人计算机的cookie是否会缓存在代理服务器上?(然后,下一个访问该文件的人会拿起另一个人的饼干吗?)
现在,让我们说缓存代码就像Cache-Control "max-age=7200, proxy-revalidate".
Q.2.就代理服务器上的cookie缓存而言,有什么区别?
现在我对实际设置 cookie的文件(例如Javascript或PHP)有疑问.
Q.3.访问这些类型的文件时,cookie是否会缓存在代理服务器上?或者缓存与静态文件相同?
如果你想知道,我问这些事情的原因是因为我没有一个人的cookie被代理缓存,因此转移到另一个人.所以任何澄清都会有所帮助.非常感谢!
编辑:
非常感谢您的帮助.但我还需要一点澄清.
如果我有使用标题的文件Cache-Control "max-age=604800, public",是否会将任何请求cookie(Cookie)或响应cookie(Set-Cookie)转移到另一个用户的计算机(因为它在缓存中)?或者它是否仅针对该用户的浏览进行缓存?如果设置是Cache-Control "max-age=7200, proxy-revalidate"什么?再次感谢.
我正在实现一个Javascript模块管理器,通过XHR对象加载javascript文件.这种方法的问题是资源缓存:
XHR依靠内置的浏览器缓存机制,但是它的行为取决于浏览器的实现.localStorage,有一个basket.js它使用localStorage缓存下载的脚本,问题是存储大小限制通常是5-10MB.此外,localStorage是许多脚本的共享位置,它们也使用它来存储数据.Cache的接口ServiceWorkerAPI,但它只能在可ServiceWorker运行,因此怀疑地适合我的需要. 有谁知道他在他的项目中使用的一些聪明的旧的或新的javascript缓存技术,或者听说过?
注意:请不要建议使用.ajax作为接口的jQuery XHR,或者实现内置Javascript功能接口的任何其他库.
编辑:有一些有价值的建议: