2012-06-10 6 views
1

나는 페이지가 브라우저에 표시 될 때마다 몇 가지 코드를 해고하고 싶습니다 :캐시 된 페이지의 대기 이벤트?

$(function() { 
    console.log('got ready event!'); 
}); 

이 이벤트는 브라우저가 페이지를 다운로드하는 경우에만 트리거됩니다. 다른 페이지로 이동 한 다음 뒤로 이동하면 위의 스 니펫이 실행되지 않습니다. 페이지가 표시 될 때 서버가 요청을받지 않기 때문에 브라우저가 페이지 상태를 캐시하는 것 같습니다. 페이지로 돌아 가면 ready 이벤트를 발생시키지 않고 캐시 된 페이지 상태를 복원합니다.

페이지가 캐시 될 때마다 페이지가 표시 될 때마다들을 수있는 이벤트가 있습니까?

답변

0

지시문 cashe-control:no-cashe은 캐시 된 정보가 사용되어서는 안되며 대신 요청이 원본 서버로 전달되어야 함을 나타냅니다.

이 이벤트는 페이지가로드 될 때마다 발사 점을 제외하고는로드 이벤트와 동일하게 작동 :

<meta http-equiv="cashe-control" content="no-cashe"> 


pageshow 이벤트를보십시오. 페이지가 처음로드되면 pageshow 이벤트는로드 이벤트 발생 직후에 시작됩니다. pageshow 이벤트는 초기로드시 false로 설정된 persisted라는 부울 속성을 사용합니다. 초기로드가 아닌 경우 true로 설정됩니다. 즉, 페이지가 캐시 될 때 true로 설정됩니다.

$(document).bind('pageshow', function(){ 

}) 
+0

페이지를 캐싱하는 브라우저는 괜찮습니다. 그러면 불필요한 트래픽을 많이 줄일 수 있습니다. 하지만 페이지가 캐시 된 경우에도'ready' 이벤트를 실행하고 싶습니다. –

+0

@SamadLotia ['pageshow'] (https://developer.mozilla.org/ko/using_firefox_1.5_caching#pageshow_event) 이벤트를 사용해 보셨습니까? – undefined

+0

'$ (document) .bind ('pageshow', function() {...})'는 작동하지 않지만'window.onpageshow = function() {...}'은 Chrome & FF에서 작동합니다. –

1

나는이 오래된 경우가 알고 있지만 나도이 고생했습니다. "pageshow"는이 작업을 수행 할 수 있지만이 이벤트를 문서 대신 창에 바인딩해야하는 것처럼 보입니다. 코드는 다음과 같이 표시되어야합니다.

$(window).on('pageshow', function(){ alert('page show'); }); 
관련 문제