2009-08-08 4 views
5

약 요구되는 ajax 요청이 있습니다. 30 초 후에 사용자를 다른 페이지로 보냅니다. 그 시간 동안 우리는 물론 ajaxy 스피너 표시기를 보여 주지만, 브라우저 클라이언트가 실제로 작동하지 않거나 자신의 로딩 메시지를 표시하기 때문에 브라우저가 "멈추는"것처럼 보일 수도 있습니다.Ajax 브라우저 "바쁜 상태"

모든 주요 브라우저에게 JS 명령으로 바쁘다고 말하기 쉬운 방법이 있습니까?

감사합니다, 차드

답변

2

이 상황에서 AJAX를 사용해야합니까? 요청을 처리하는 것이 목적이고 목적 페이지로 리디렉션을 마친 다른 페이지를 게시/게시 할 수 있습니까?

여전히 일부 JS를 사용하여 회 전자를 팝업 할 수 있으며 다른 페이지에 게시 중이므로 브라우저에 "기본 사용중 표시기"가 표시됩니다. 브라우저는 중간 페이지를 표시해서는 안되며 일단 요청이 처리되면 응답이 대상으로 리디렉션됩니다.

+0

멋지다 - 네이티브 인디케이터를 얻는 가장 좋은 방법 일 수 있습니다. 실제로 게시물을 통해 작동합니다. 감사합니다. 몇 가지 사항을 변경하겠습니다. – Chad

0

JQuery와?

$('html').ajaxStart(function() { $('#busyindicator').show(); }); 
$('html').ajaxStop(function() { $('#busyindicator').hide(); }); 

하지만 어쩌면 나는 당신의 질문을 이해하지 못하는거야. '바쁘다'는 것은 무엇을 의미합니까? 브라우저의 진행률 막대 또는 기본 사용중 표시기가 활성 상태인지 확인 하시겠습니까? 할 수 있다고 생각하지 마십시오 ...

+1

그가 이미 비슷한 일을하고 있고 더 많은 것을 원한다고 들리는데, 예를 들어 브라우저의 기본 통화 중 표시기 설정과 같이 말입니다. – Josh

+0

감사합니다 Scott! 명확하지 않은 것에 대해 유감스럽게 생각합니다. Yup은 Ajax를 사용하여 포스트 솔루션을 시도 할 것이다. – Chad

2

속성을 body으로 설정하면 '대기'로 설정할 수 있습니다. 내가 믿을

$(document.body).setStyle({cursor: 'wait'}); 

내가이 jQuery를 전문가가 아니다으로 틀렸다면 이것은 jQuery 코드는, 누군가가 나 수정하시기 바랍니다있다 :

$("body").css("cursor", "wait"); 

이 뜻을 같이 프로토 타입이 될 것이다 전체 페이지에서 Windows 용 모래 시계 마우스 커서와 Mac OS에서 회전 시계 커서를 표시합니다.

+0

예. 이것도 좋은 생각입니다 .... 실제 네이티브 인디케이터를 얻기위한 요청을 실제로 게시하는 빠른 대안이 될 것입니다. 감사합니다. Josh. – Chad

+0

이것은 좋지만 좋지 않습니다. 크롬 탭 아이콘은 앱이 사용 중임을 나타내지 않습니다. – sureshvv