[JQUERY] 어떻게 응답을 반환하기 전에 렌더링 할 페이지 기다릴 AJAX를 GET 요청을 얻으려면?
JQUERY어떻게 응답을 반환하기 전에 렌더링 할 페이지 기다릴 AJAX를 GET 요청을 얻으려면?
해결법
-
1."페이지에 대한 대기가 렌더링 될"에 AJAX get 및 위해서는, 실제로 완전히 가져 오는 및 포함 된 CSS와 자바 스크립트 파일을 모두 실행 페이지를 처리 할 수있을 것입니다. 즉 쉽고하지 않는 것이 좋습니다 아니다. 다행히, 당신은 어쨌든 할 필요가 없습니다.
"페이지에 대한 대기가 렌더링 될"에 AJAX get 및 위해서는, 실제로 완전히 가져 오는 및 포함 된 CSS와 자바 스크립트 파일을 모두 실행 페이지를 처리 할 수있을 것입니다. 즉 쉽고하지 않는 것이 좋습니다 아니다. 다행히, 당신은 어쨌든 할 필요가 없습니다.
다음은 이러한 종류의 문제에 접근하는 세 가지 더 나은 방법은 다음과 같습니다 :
그리스 몽키 스크립트는 일반 페이지에서 모두와 iframe을 내 페이지에 게재됩니다. 사실, 당신은 같은 스크립트가 모두 실행하고 여러 도메인에 설정할 수 있습니다.
마스터 페이지 및 페이지에서 iframe 자원 모두 GM 스크립트 (들)을 실행하는 경우, 스크립트 인스턴스 PostMessage를을 이용하여 서로 교차 도메인과 통신 할 수있다 ().
예를 들어, 우리가 여행 데이터가 포함 된 사이트 fiddle.jshell.net/9ttvF/show을 가지고 가정, 우리는 매쉬업하기 위해 해당 사이트를 자원 사이트, jsbin.com/ahacab에서 데이터를 일치하는 원하는, 그 AJAX를 사용 페이로드 데이터를 얻을 수 있습니다.
대상 (마스터) 사이트는 다음과 같습니다 :
자원 사이트 외모는 처음에는이 같은 :
다음과 같이 완료 :
다음 스크립트 :
// ==UserScript== // @name _Cross-site, AJAX scrape demo // @include http://fiddle.jshell.net/9ttvF/show/ // @include http://jsbin.com/ahacab* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js // @require https://gist.github.com/raw/2625891/waitForKeyElements.js // @grant GM_addStyle // ==/UserScript== if (/fiddle\.jshell\.net/i.test (location.host) ) { console.log ("***Master-page start..."); /*--- Inform the user. */ $("#plainResults").before ( '<div id="gmFetchRez">Greasemonkey is fetching results from jsbin.com...</div>' ); /*--- Setup to process messages from the GM instance running on the iFrame: */ window.addEventListener ("message", receiveMessage, false); /*--- Load the resource site in a hidden iframe. */ $("body").append ('<iframe src="http://jsbin.com/ahacab" id="gmIframe"></iframe>'); } else { console.log ("***Framed start..."); /*--- Wait for the AJAXed-in content... */ waitForKeyElements ("#results table.rezTable", sendResourcePageData); } function sendResourcePageData (jNode) { console.log ("Results found! Sending them to the main window..."); window.top.postMessage (jNode.html(), "*"); } function receiveMessage (event) { if (event.origin != "http://jsbin.com") return; $("#gmFetchRez").html (event.data); } //--- Use CSS to control appearances. GM_addStyle ( " \ #gmIframe { \ display: none; \ } \ #gmFetchRez { \ background: lightYellow; \ border: 3px double red; \ padding: 1em; \ } \ " );
스크립트를 설치하고 실행하는 최종 결과의 모습이 좋아 :
from https://stackoverflow.com/questions/11486256/how-to-get-an-ajax-get-request-to-wait-for-the-page-to-be-rendered-before-return by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 무료있는 jqGrid에 remapColumnsByName와 remapColums를 교체하는 방법 (0) | 2020.10.18 |
---|---|
[JQUERY] VueJS 및 jQuery를 플레이 멋진합니다 (0) | 2020.10.18 |
[JQUERY] JQuery와 이벤트 처리기 - "최고"방법은 무엇 (0) | 2020.10.18 |
[JQUERY] JS 또는 쿼리를 통해 강제로 다운로드 (0) | 2020.10.18 |
[JQUERY] 캐치 오류가 iframe이 SRC는로드에 실패합니다. 오류 : - "프레임에 표시 할 'http://www.google.co.in/'거부 ..." (0) | 2020.10.18 |