GAE java缓存问题

时间:2014-08-31 06:33:12

标签: java javascript google-app-engine http caching

我在Google App Engine中开发Java应用程序,但我遇到了问题。 我希望能够从管理控制台控制应用程序数据库,但它似乎无法正常工作,当我更改数据库中的数据时,它没有反映在应用程序上,即我有一个我想要锁定的用户我更改了值active =" false",我可以看到数据库中的新值,但是当应用程序发出另一个请求时,我得到了前一个值(以JSON格式)。

我假设它有缓存,所以我试图从JavaScript和Java中取消它,如下所示:

JavaScript的:

$.ajaxSetup({
    cache: false,
    type: 'POST',
    headers: {
        "cache-control": "'no-cache, max-age=0",
        "Pragma": "no-cache"
    }
});

爪哇:

response.addHeader("Cache-Control", "no-cache, private, must-revalidate, max-age=0");
response.addHeader("Pragma", "no-cache");

我还能做什么?

2 个答案:

答案 0 :(得分:1)

我发现了我的问题,这与使用Persistence Manager的缓存没有问题。

我使用了PM的2个实例,这就是造成差异的原因。

答案 1 :(得分:-1)

您可以尝试配置您的服务器。假设apache:

# mod_expires directives: 
# enable expires/max-age headers and set default to 0 seconds from last access time
ExpiresActive On
ExpiresDefault A0
# configure ExpiresByType on your specific types, eg ExpiresByType text/css A0

# mod_headers directives:
# send variety of no-cache directives, should cover any quirky clients and gateways
Header set Cache-Control "max-age=0, private, no-cache, no-store, must-revalidate, proxy-revalidate, no-transform"
Header set Pragma "no-cache"
# enclose this in <Files> directive for specific file eg <Files *.js>

这是一篇关于解释网页缓存的好文章:http://www.mnot.net/cache_docs/