2011-12-14 3 views
4

JSON 데이터를 반환하는 WCF를 개발 중입니다. 메서드는 매개 변수를 사용하여 데이터베이스의 데이터를 반환합니다.WCF에서 캐싱 사용 방법

WCF의로드가 높으면 항상 캐싱을 피하기 위해 캐싱을 사용하는 것이 좋습니다.

편집 : 메서드는 최근 항목을 반환합니다. 따라서 메소드는 매개 변수와 같은 시간 간격을 제공하는 모든 요청에 ​​대해 동일한 응답을 리턴해야합니다.

어떻게 효율적으로 수행 할 수 있습니까? Basic Web HTTP Service Caching에 대한 글을 읽었지만 이것이 최선의 해결책인지 잘 모르겠습니다.

고마워요.

+1

http://msdn.microsoft.com/en-us/library/ee230443.aspx 물론 –

+0

:). 매개 변수가 같으면 응답은 같습니다 ... 나는 게시물을 편집 할 것입니다. – johan

답변

1

저는 개인적으로 WCF 서비스를 세션 준비 상태로 만들고 세션에 캐시를 저장하려고합니다. 절충은 항상 데이터가 얼마나 정적인지, 그리고 얼마나 많은 데이터를 끌어 내야하는지 간의 차이입니다.

매우 정적 인 데이터의 경우 세션 길이 동안 또는 데이터가 변경 될 때까지 (다른 사용자가 내 세션의 캐시 된 데이터를 변경했는지 여부를 결정할 때까지는 다른 이야기 임) 캐시 할 수 있습니다. 매우 동적 인 데이터의 경우, 캐시를 몇 분 이상 신뢰하기가 어렵습니다 (여전히 안전하지는 않습니다).

질문은 클라이언트 쪽 캐싱 또는 서버 쪽 캐싱에 대한 이야기입니까? 클라이언트에서 데이터 세트를 캐시하려고하거나 데이터베이스 서버에서 데이터 세트를 가져온 웹 서버에 캐시하고 싶습니다.

클라이언트 캐싱에 대해 이야기하는 경우 쿠키를 캐싱하거나 자바 스크립트 변수를 캐싱하거나 http 캐싱 또는 앞서 말한 HTML 5 애플리케이션 캐싱 메커니즘을 사용할 수 있습니다.

그것은,이 경우에는 망치하지만 작업에 적합한 도구에 대한 모든이없는 것)

+0

서버 쪽 캐시해야합니다. – johan

+0

이 경우 세션에서 캐시하는 것을 선호합니다. WCF 서비스의 세션을 사용하려면 서비스에 WebHttp 비헤이비어가 있어야하지만 그 외에는 매우 간단합니다. –

0

당신은 HTTP 캐시 제어를 사용할 수 있습니다 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html

또는 HTML 5 응용 프로그램 캐시 : http://www.html5rocks.com/en/tutorials/appcache/beginner/

어떻게 당신의 클라이언트가 WCF 서비스를 소비 할 것인가? jQuery AJAX 요청을 통해? 표준 GET 요청?

+0

GET 요청. 그러나 그것은 사이트가 아닌, 전화 일 가능성이 높습니다. – johan

+0

좋습니다, 위에서 설명한 방법 중 하나를 사용하여 서비스 부하를 제어 할 수 있습니다. – Lloyd

관련 문제