2010-12-27 2 views
0

나는 멀티 레벨은 다음과 같은 마크 업에 드롭 다운 메뉴를 구축하기 위해 자바 스크립트와 CSS를 사용 :JSP로 캐시 문제

<ul> 
    <li>menu item 1</li> 
     <ul> 
     <li><a href="#">sub menu menu item 1</a></li> 
     ................. 

이 태그는 데이터베이스에서 메뉴 데이터를로드하는 사용자 정의 JSP 태그 <mui:menu .../>에 의해 생성됩니다.

나는 내 JSP 페이지는 다음과 같이 행동 할 수 있기를 바랍니다 : 그렇지 않으면 ... 데이터베이스에서로드 단지 브라우저의 캐시

  • 를 사용

    • 메뉴 데이터 내가 페이지를 방문한 마지막 시간 이후 변경되지 않은 경우

    어떻게하면됩니까? 캐시 메커니즘에 대해 자세히 알지 못합니다.

  • 답변

    2

    클라이언트 캐시가 있으면 캐시에 저장된 내용이 아직 신선한 상태 (아직 만료되지 않은 상태) 인 경우 브라우저가 콘텐츠 용 서버로 이동하지 않음을 의미합니다. 메뉴에 대한 브라우저의 캐시로 재생하려면 start learning about it이 필요합니다.

    하지만이 세상에 당신이 올바른 방법으로 접근하지 못하고 있다고 생각합니다. 메뉴는 JSP 사용자 정의 태그에 의해 생성됩니다. JSP는 서버에서 실행되므로 <mui:menu .../> 태그가 포함 된 리소스를 요청할 때마다 태그가 데이터베이스에서 데이터를 가져옵니다.

    클라이언트에서 결과를 캐시 할 수 있도록 GET을 변경하지 않고 쿼리 할 수있는 별도의 리소스에서이 태그를 사용할 수 있습니다. HTTP 304 Not Modified으로 응답하여 캐시됨을 알릴 수 있다고 생각합니다. 값은 여전히 ​​유효하지만 사실은 이며 클라이언트 쪽이 아닌 서버 쪽에서 캐시를 처리하는 것이 더 좋습니다.

    JSP 태그가 캐시를 처리하도록하고 태그가 변경된 경우에만 데이터베이스로 이동하십시오.

    그냥 내 두 센트!

    +0

    감사에서 찾을 수 있습니다. 대역폭을 절약하기 위해 캐싱 할 수있는 모든 것을 캐시하고 싶습니다 ...하지만 캐시 메커니즘에 대한 자세한 내용을 먼저 알아야 할 필요가 있다고 생각합니다. 그러면 수행 할 수있는 작업과 더 나은 작업을 고려해야합니다. – idiotgenius

    1

    OSCache에는 생성 된 메뉴를 캐시하는 데 도움이되는 JSP 태그가 있으며,이 태그를 사용하여 쉽게 컨텐츠 블록을 제어 할 수 있습니다. JSTL을 사용하여 내 특정 사건에 대한 좋은 해결책이없는 것 같다 dpb.so

    은 OSCACHE는 http://www.opensymphony.com/oscache/