comet/server push iframe을 로드하는 동안 브라우저 "throuber of doom"을 중지합니다.
Comet 또는 Ajax Long Pull 기술을 사용하는 경우 - iframe이 주로 사용됩니다.또한 iframe이 긴 연결이 닫히기를 기다리는 동안 브라우저는 thrubber(프로그레스/로드 인디케이터)를 회전시킵니다.
etherpad.com과 같은 일부 웹사이트는 이를 중단시킬 수 있었다.
어떻게 그들이 그것을 할까요?
하루 종일 인터넷 상인들의 속을 파고든 후, 내가 생각해낸 것은 다음과 같다.
server-sended events - 매우 쿨하며 현재 Opera에서만 작동하지만 HTML5의 일부일 수 있으며 다른 브라우저에서도 지원할 수 있습니다.content-type의 「application/x-dom-event-stream」을 가지는 새로운 요소 태그를 추가합니다.이것에 의해, 서버는 클라이언트 DOM내의 이벤트를 기동할 수 있습니다.그리고 제가 아는 한 진행률 표시는 하지 말아야 합니다.그것은 또한 표준적인 작업 초안이지, 전체 iframe 혜성 같은 해킹이 아닙니다.
XMLHttpRequest - Firefox 및 Safari에서는 사용할 수 있지만 IE에서는 사용할 수 없습니다.이것에 의해, 각 readyStateChange 이벤트에 표시되는 fragment를 처리할 수 있습니다.진행률 표시기를 표시하지 않습니다.*. -- 아래 설명을 참조하십시오.
ActiveXObject("htmlfile") - IE에서 현재 창 범위를 벗어나는 페이지/창을 만들 수 있습니다.그러면 진행률 표시기가 사라집니다!로드된 iframe은 보이지 않는 브라우저에 있습니다.
server-sent-events 상세:
기타 2가지 기술에 대한 자세한 내용(또한 문제를 더 잘 설명):* http://meteorserver.org/browser-techniques/
각 기술에 대해 더 자세히 알아보고 더 많은 기술을 제공합니다.
- http://cometdaily.com/2007/12/11/the-future-of-comet-part-1-comet-today/
- http://cometdaily.com/2008/01/10/the-future-of-comet-part-2-html-5’s-server-sent-events/
저는 ajax 요청으로 set Timeout을 실행하면 모든 것이 해결되었습니다.document.ready의 요청을 실행했을 때, 저는 "죽음의 공포"를 느꼈습니다.그러나 set Timeout에서는 이 문제가 발생하지 않습니다.(이 수정은 Chrome에서도 유효합니다.
만약의 경우를 대비해서, 이 사람은 파이어폭스 문제를 해결하기 위한 해결책을 제시했습니다.http://www.shanison.com/?p=237
저도 같은 문제가 있었는데, 해결책은 숨겨진 iframe 대신 Ajax를 사용하는 것이었습니다.따라서 페이지 어딘가에서 iframe을 생성하는 대신 다음을 수행합니다.
$("#chat .msg_list").prepend('<iframe id="hidden" src="chatFrame?id=$userId" frameborder="0" height="0" width="100%"></iframe>');
iframe 콘텐츠를 div에 로드하기 위해 jquery ajax 호출을 사용했습니다.
$('#chat #chat_comet').load('chatFrame?id=$userId');
언급URL : https://stackoverflow.com/questions/1064782/stop-the-browser-throbber-of-doom-while-loading-comet-server-push-iframe
'programing' 카테고리의 다른 글
ESLint: 'cy'가 정의되어 있지 않습니다(Cypress). (0) | 2023.03.26 |
---|---|
log4j:WARN web.xml에서 로거용 부록을 찾을 수 없습니다. (0) | 2023.03.26 |
Oracle에서 내부 Join을 사용하여 문 (0) | 2023.03.26 |
JavaScriptSerializer에서 null/default 값을 가진 속성을 제외할 수 있습니까? (0) | 2023.03.26 |
Woocommerce는 각 카테고리와 제품을 보여줍니다. (0) | 2023.03.26 |