2010-12-13 3 views
2

비애 :보기 로딩 메시지 제출 - 뒤로 버튼은 양식이 제출 될 때 나는 로딩 메시지와 이미지 사업부를 보여주는거야

$("#some_form").submit(function(){ 
    $("#some_form #loading").show(); 
}); 

이 내가 예상대로 작동합니다. 그러나 뒤로 버튼을 사용하여 돌아가는 경우 브라우저가 페이지를 다시로드하지 않았기 때문에로드 div가 계속 표시됩니다.

뒤로 버튼을 사용할 때로드 div를 숨기는 데 사용할 수있는 브라우저 이벤트가 있습니까? 아니면 내가 잘못한 일을하고있는 것일까?

도움 주셔서 감사합니다.

답변

1

Cache-Control: no-cache 헤더를 사용하면 브라우저가 원래 페이지를 캐시하지 않도록 알려 주시면 어떨까요? 기록에서 다시 탐색 할 때 페이지를 다시로드해야합니다.

어때 대략 window.onunload?

+0

window.onunload가 작업을 수행했습니다. 감사! – idlefingers

2

'로드 중'이미지가 표시되므로 AJAX로 작업하고있는 것 같습니다. 권리?

http://www.bajb.net/2010/02/browser-back-button-detection/

+0

아뇨, 아약스를 사용하지 않고 있습니다. 양식을 제출할 때 시간이 걸릴 수 있고 양식을 여러 번 제출하는 것을 피하기 위해 양식을 제출한다는 사실을 보상하려고합니다. 다른 방법이 없다면 아약스를 로딩 이미지에만 사용하는 것을 피하고 싶습니다. – idlefingers

+0

편집 내 대답 x) – Icid

+0

onbeforeunload는 예상대로 요소를 제거하고 다시 돌아 왔을 때 이미지를 멈 춥니 다. 너무 일찍 - 다음 페이지가로드되는 동안로드 이미지가 제거되므로로드 바처럼 동작하지 않습니다. 뒤로 버튼 누르기를 감지하는 것은 너무 일찍 진행됩니다. 뒤로 버튼을 감지하고 처리하고 싶지 않습니다. 다시 알기 위해 돌아가는 페이지가 필요합니다. – idlefingers

0

당신은

을 추가 할 수 있습니다 당신은 시도 할 수 :

window.onbeforeunload = function() { 

    $("#some_form #loading").hide(); 

} 

또는이 당신은 아약스 스타트 및 아약스-complete 이벤트 =)

편집을 사용해야합니다

<script> 
$(function() { 
    $("#some_form #loading").hide(); 
}); 
</script> 

따라서 페이지가 완전히로드 될 때마다 div가 숨겨집니다. 이것은 내가 알고있는 한 뒤로 버튼을 눌렀을 때도 작동해야합니다.

+0

이것은 처음에 시도한 것이지만 브라우저가 캐시 된 버전의 페이지를 사용하고 페이지를 완전히 다시로드하지 않기 때문에 작동하지 않습니다. – idlefingers

관련 문제