2010-12-08 3 views
0

알프레스에서 뭔가 간단한 작업을 수행하는 웹 스크립트가 있습니다. 속성을 읽고 그 값을 기반으로 json 응답을 만듭니다. 이 속성을 업데이트하는 또 다른 웹 스크립트가 있습니다. 그러나 원본 스크립트의 응답은 때로는 캐시되며 모든 클라이언트가 응답하지는 않습니다.Alfresco 웹 스크립트 응답 캐싱을 방지하는 방법

그래서 한 클라이언트의 경우 현재 상태가 표시되고 다른 상태는 이전 상태가됩니다.

는 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"; 
}  

프리 마커 템플릿 다음 지지대를 분석하고 대응하는 JSON 출력을 생성한다.

이제 간단하고 간단해야합니다. 사용 사례는 다음과 같습니다. 1. 사용자 # 1이 처음으로 문서를 가져 오면 상태가 "무언가"로 설정되었습니다. 그는 "FirstResponse"를 얻었고, 웹 스크립트로 그는 그것을 바 꾸었습니다.

  1. 그는 문서를 다시 가져 오면 두 번째 응답을받습니다.

  2. 그러나 두 번째 클라이언트가이 노드에 액세스하여 응답을 요청하면 여전히 응답을받으며, 그 소품을 읽으려고하면 "이전"소품이 나옵니다.

그래서 두 클라이언트의 스크립트를 새로 고치고이 속성을 읽으면 한 클라이언트는 하나의 값을 얻고 다른 클라이언트는 다른 값을 얻습니다.

내 생각에 (지금까지) 이것은 캐싱 문제입니다. 그렇다면 캐싱을 방지하려면 어떻게해야합니까? 그리고 그것은 어디에서 일어 났습니까? 최대 절전 모드? 어떤 종류의 저장소 캐시? 그것을 제거하는 방법?

답변

0
+0

아니요, 도움이되지 않습니다. 캐싱은 webscript와 all에 설정되어 있습니다. 게다가 webscript 응답이 캐시에서 온 것이면 어떻게 한 사용자가 하나의 응답을 얻고 다른 하나는 다른 응답을 얻게됩니까? – Zlatko

0

음, 여기에 문제를 발견, 소품은 D로 정의 하였다 : mltext합니다. 그래서 캐시 된 정보가 아니라 다국어 정보였습니다. 모델을 확장하고 다국어로 된 새로운 소품을 추가해야했습니다. 이제는 모든 사용자가 동일한 정보를 갖게되었습니다.

관련 문제