바로아래 포스트에서 RSS Reader페이지를 만들어봤다.
페이지에서 가장 시스템의 자원을 많이 잡아 먹는 부분은
등록된 RSS들을 읽어와 GrideView에 바인딩 할 수 있도록 가공하는 부분이다.
이부분은 적절히 캐쉬해준다면 프로그램의 더욱좋은 성능을 끌어낼 수 있다.
아시다시피 asp.net은 컨트롤 별로 캐쉬 설정을 할 수 있다.
따라서, XmlDataSource컨트롤도 캐쉬설정이 가능하다.
XmlDataSource.EnableCaching 속성 (System.Web.UI.WebControls)
속성 값
데이터 소스 컨트롤에서 데이터 캐싱을 사용할 수 있으면 true이고, 그렇지 않으면 false입니다. 기본값은 true입니다.
XmlDataSource 컨트롤은 EnableCaching 속성이 true로 설정되어 있으면 자동으로 데이터를 캐시합니다. 기본적으로 CacheDuration 속성은 무제한 캐시를 나타내는 0으로 설정되며 데이터 소스는 해당하는 XML 파일이 변경될 때까지 데이터를 캐시합니다.
라고 친절하게 MSDN에 나와있다.
그러니까 기본적으로 캐슁설정이 되있고 XML파일이 변경될때까지 캐쉬가 존재한다라는 말이다
이 말대로라면 블로그에 포스트가 업데이트되서 RSS(XML)파일이 변경이되면
내가만든 페이지에도 바로 그 업데이트가 적용되어야 하는게 아닌가??
그런데 내가 만든페이지에서 캐쉬설정을 그냥 내버려뒀더니
제대로 캐쉬를 안해서 바로바로 포스트가 업데이트되자 않았다.
(처음에는 웹서버나 asp.net페이지 캐쉬문제인줄로만 알았다;)
아무튼 아래처럼 명시적으로 써주면 잘 동작한다.
<asp:XmlDataSource
ID="XmlDataSource1"
runat="server"
enablecaching="True"
cacheduration="0">
</asp:XmlDataSource>
ps. 참고로 스크랩한 포스트의 경우 RSS자체에 안올라갈 수 있다.
'Programming > asp.net' 카테고리의 다른 글
| [asp.net] XmlDataSource Cache 설정 (0) | 2007/12/11 |
|---|---|
| [asp.net] RSS이용, 지인들 포스트들을 한눈에. (1) | 2007/12/11 |
sort.xsl
