2010-12-08 108 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。所以它沒有緩存信息,只是多語言信息。我不得不擴展模型並添加多語言的新支持,現在所有用戶都擁有相同的信息。