2010-12-08 81 views
0

我有一个webscript在露天做一些简单的事情:读取一个属性,并根据它的值创建一个json响应。另一个webscript负责更新这个属性。但是,原始脚本的响应有时会缓存,而不是所有客户端。如何防止Alfresco webscript响应缓存

因此,对于一个客户端,我获得当前状态,而另一个客户端则获得以前的状态。

的webscript基本上读取来自节点的属性(nodeRef在webscript请求发送):

var status = doc.properties["my:customProp"]; 
switch (status) { 
    case "something": 
    model.prop = "FirstResponse"; 
    break; 
    case "somethingElse": 
    model.prop = "SecondResponse"; 
    break; 
    default: 
    model.prop = "ThirdResponse"; 
}  

的的freemarker模板然后解析支柱和创建用于响应一个JSON输出。

现在,这应该是简单明了的。用例如下: 1.当用户#1第一次访问文档时,状态被设置为“某事”。他得到了“FirstResponse”,并通过一个webscript改变了它。

  1. 当他再次获得文档时,他得到第二个响应。

  2. 但是,如果第二个客户端访问同一个节点并要求响应,它仍会得到第一个响应,甚至更多,当我尝试读取该道具时,我会得到“旧”的道具。

因此,我刷新两个客户端的脚本并阅读此属性,一个客户端获取一个值,另一个获取另一个值。

我唯一的猜测(到目前为止)是这是一个缓存问题。那么,我该如何防止缓存?它发生在哪里?休眠?某种存储库缓存?如何摆脱它?

回答

0

好了,发现这里的问题,道具被定义为d:mltext。所以它没有缓存信息,只是多语言信息。我不得不扩展模型并添加多语言的新支持,现在所有用户都拥有相同的信息。