2013-10-01 3 views
2

Windows 8 응용 프로그램의 페이지/프레임이 캐시에 있는지 확인하는 방법이 있습니까? 홈 및 클라이언트 (탐색 캐시 사용)의 두 페이지가 있다고 가정 해 보겠습니다. 집에서 클라이언트 (단추 별)로 이동할 때 클라이언트는 OnNavigatedTo 메서드의 데이터베이스에서로드됩니다. 뒤로 버튼으로 다시 홈으로 이동하고 다시 클라이언트로 이동합니다. 이제는 클라이언트가 캐시에서로드되는 것을 볼 수 있습니다.하지만 OnNavigatedTo 메소드보다 다시 좋습니다. 처음으로 페이지를 열 때 데이터베이스에서 클라이언트를 한 번만로드하려고합니다. 나중에 캐시에서 클라이언트를로드하십시오.캐시에 페이지가 있는지 확인하십시오. Windows 8 앱

클라이언트가 이전에로드되었거나 첫 페이지로드시에만로드하는 방법보다 어떻게 확인할 수 있습니까? 어쩌면 다른 방법일까요?

감사합니다.

+0

웹 페이지에 대해 이야기하고 있다고 가정합니다. PHP 기반 웹 사이트를 개발할 때 내가 아는 바로는 페이지가 캐시 될지 여부를 지정하고 캐시 된 경우 만료 될 때 지정합니다. 따라서 일반적으로 어떤 페이지 헤더를 설정할 것인지 묻는 중입니까? 어쩌면 이것은 당신의 관심사일지도 모른다 : http://stackoverflow.com/questions/1971721/how-to-use-http-cache-headers-with-php –

+0

그런데, Windows 8에는 무엇이 필요합니까? C#으로 태그를 추가 했으므로 .Net 프레임 워크가 더 적합 할 수도 있지만 제목에 포함되지는 않습니다. 귀하의 질문은 이제 플랫폼 특정 (Windows 8) 기능/캐싱 된 페이지에 액세스하는 해킹을 시도하는 것을 제안합니다 ... (적어도 나에게 ...) 편집 : 아, 지금 나는 ASP C#을 생각하고있었습니다. 나는 Windows 8 Apps에 대한 이해가 없다. –

+0

아, 미안하지만 나는 웹 페이지에 대해 말하는 것이 아니다. 내 질문에 대한 Windows 8 응용 프로그램입니다. – ignacy130

답변

1

여기

는 Sinche 아무도는 각각의 프레임에 대한 캐시 크기를 재설정하는 것이 더 나은 그래서 지하철 응용 프로그램의 캐시에서로드 싶어 ... 그것에 대한 솔루션입니다. 캐시에서로드하려는 페이지의 경우. if 루프를 유지하십시오. History 개체의 forwardStack도 확인하십시오.

protected override void OnNavigatingFrom(NavigatingCancelEventArgs e) 
{ 
    base.OnNavigatingFrom(e); 
    if (e.NavigationMode == NavigationMode.Back) 
    { 
     ResetPageCache(); 
    } 
} 

private void ResetPageCache() 
{ 
    var cacheSize = ((Frame) Parent).CacheSize; 
    ((Frame) Parent).CacheSize = 0; 
    ((Frame) Parent).CacheSize = cacheSize; 
} 

블로그입니다. 아픈 당신이 첫 번째 통과 추천 :

BLOG

편집 ---------------------

다음

두 개의 링크가 있습니다. 내가 이전의 캐시에서 파일을로드의 상황에 직면 한 적이 있기 때문에 내가 공유 할 수있는 몇 가지 연구 결과 :

다음은 accesscache 클래스를

Access cache

을 그리고 여기 winJS

winJS cache

위한거야

원하는 페이지에 대해 캐싱을 true로 설정하면 액세스 캐시가 요구 사항을 충족시킬 수 있습니다.

+1

주위에 일을 직면했다. 내 질문을 바로 잡을거야. 이 경우 – ignacy130

+0

에 'NavigationCacheMode = NavigationCacheMode.Enabled;'만 있으면됩니다. 페이지가 캐시에 있으면 자동으로로드됩니다. – Anobik

+0

하지만 앱에서 발생합니다. 일리노이 주 편집 : 더 구체적인 어떤 것을 – Anobik

1

좋아, 내 문제를 해결했다. NavigationCacheMode를 활성화하는 것이 중요합니다. OnNavigatedTo 메서드에서는 데이터베이스에서 데이터를 저장하는 목록에 요소가 포함되어 있는지 여부 만 확인합니다. 첫 페이지를 열면 비어있어서 데이터베이스의 데이터를 내 목록에로드합니다. 따라서 NavigationCacheMode를 사용하면 변수의 데이터가 캐시에 저장되고이 페이지로 이동하는 동안로드됩니다. 일부 플래그가 필요할 수 있습니다.

관련 문제