2010-07-30 2 views
1

2 분과 같이로드 시간이 긴 ASP.NET (C#) 페이지가 있습니다. 사용자에게 작은 애니메이션과 "기다려주십시오"메시지가 표시됩니다. 사용자가 실수로이 페이지를로드하면 페이지가로드 될 때까지 기다려야합니다.요청이 전송 된 후 페이지로드를 중지하는 방법은 무엇입니까?

내 질문은 : 페이지로드를 중지하는 방법이 있습니까?

고맙습니다.

+0

현재 데이터로드는 어떻게됩니까? Ajax 또는 메인 페이지 요청을 통해? 그리고 취소하기를 원합니까? 그냥로드를 중지하거나 리디렉션을하거나 화면을 somethign 다른합니까? – Chris

+0

나는 AJAX를 사용하지 않는다. 큰 페이지 렌더링이 시스템을 사용하는 다른 사용자의 속도를 늦추는 것처럼 보이기 때문에 서버에 명령로드를 중지하여 페이지 렌더링을 중단하고 싶습니다. – Olivier

답변

4

서버 측 처리를 중지하려면 까다로운 작업이 필요합니다. 일반적으로 요청이 내려지면 해당 페이지는 다른 thigns와 독립적으로 렌더링됩니다. 당신이해야 할 일은 그 페이지를 재 설계하여 일정한 간격으로 정지 명령이 내려 졌는지 여부를 확인하고 그 시점에서 무엇을하고 있는지를 중단하는 것입니다. 중지 플래그는 세션에 넣을 수 있으며 중지 후에 지워야합니다.

정지가 올바른지 확인하는 방법을 고려해야 할 수도 있습니다 (둘 이상 실행중인 경우). 이것은 "abort"페이지에 대한 호출의 일부에서 사용할 수있는 고유 한 ID를 반환하여 수행 할 수 있습니다.

내 생각에이 방법은 사용자가이 사고를 저지르는 것을 막기 위해 노력하고 있습니다. 가능하면 클릭하는 링크를 만들면 "다음 페이지는 렌더링하는 데 몇 분이 걸릴 것입니다, 계속 하시겠습니까?"라는 경고가 팝업으로 나타나기 전에 페이지 요청이 실제로 중단되기를 바랍니다.

나는 전에 이런 종류의 일을 시도한 적이 없다는 것을 알아 두어야한다. 그렇게하기가 더 쉬운 방법일지도 모르겠다. 그러나 이것은 아마도 내가 문제에 대해 생각하는 방법 일 것이다.

+0

당신의 아이디어는 좋아 보인다. 나는 그것을 시험해 보겠다. – Olivier

0

window.stop()을 자바 스크립트로 시도해보십시오.

+0

나는 그걸 시도했지만 렌더링에서 페이지를 멈추지 않는다. – Olivier

+0

IE에 있니? 이것을보십시오 :'document.execCommand ('Stop')'. 별로 좋지는 않지만 작동한다면 여러 브라우저에서 두 명령을 모두 지원해야 할 것입니다. –

+2

질문에 대한 내 의견에 대한 회신을 보면 이것이 필요하지 않습니다. 갈라 셀 (Galael)은 서버 처리가 중단되는 것을 막을 수있는 방법을 제시합니다. 순수 JS 솔루션은 그렇게 생각하지 않습니다. – Chris

관련 문제