2010-11-30 2 views
0

jsonp를 사용하여 페이지 성능 문제를 해결하려고합니다. 내 사이트에서 나는 보통 document.write("<scr" + "ipt src='advendor.com\myad.php'></scr" + "ipt>");과 같은 스크립트 태그를 작성하여 광고를 표시합니다. 이것은 스크립트 태그가 가리키는 사이트가 매우 느린 습관을 가지고 있다는 사실을 제외하면 모두 훌륭하고 좋은 점입니다. 따라서 5 개의 광고가있는 페이지를 만들 때 동기 요청으로 인해 전체 페이지 로딩 시간이 길어질 수 있습니다.jsonp를 사용하여 JavaScript 기반 광고 호출을 페이지에 비동기 적으로 전송하는 방법

제 아이디어는 광고 서비스에 jsonp 호출을 작성하여 페이지에 작성해야하는 스크립트 태그를 제공하는 것입니다. 문제는 내가 페이지에 <script> 태그를 얻을 수 있지만, 스크립트 태그는 아무것도하지 않습니다. 스크립트가 document.ready 전에 작성된 경우에만 작동합니까?

설명 : 현재 우리는 서버 측 코드를 사용하여 광고 게재 시스템을 호출하므로 서버 측에서 얻을 수있는 광고 코드를 결정합니다 (이 스크립트 태그에는 공급 업체 사이트를 가리키는 "src ="가있는 스크립트 태그, 실제 광고 및 추적을 생성합니다). 광고 호출이 내 콘텐츠 로딩을 차단하지 못하도록하려는 것입니다. 그래서 나는 먼저 내용을 원하고 그 다음에 모든 광고를 원합니다. 스크립트 태그를 페이지 하단에 두는 것은 용인 할 수없는 해결책입니다. 그 이유는 페이지에 광고가 나타나는 위치를 결정해야하기 때문입니다. IE, <div id="adOneHere"><script src="vendorssite.com"></script></div>, 한 페이지에서이 광고 호출을 최대 5 개까지 가질 수 있습니다. 각각은 고유 한 이미지/추적/등을 가지고 있습니다.

here 내 문제는 여러 도메인의 중앙 집중식 서버에서 "스크립트"태그를 가져와야한다는 것을 제외하고는 문제가 비슷합니다. 특정 DOM 요소 내부의 document.write는 jQuery에 도움이된다면 잘 알고 있습니다.

+1

광고 서비스가 JSONP를 지원합니까? – alex

+0

내가 이것을 작성했기 때문에이 기능을 추가 할 필요가 있다면 –

답변

0

이것이 나왔습니다 (link text). 페이지로드 이벤트 이후에 코드를로드하고 실행하는 스크립트 태그를로드해야하는 경우 이것이 필요합니다.

0

document.write()은 매우 느리며 실행 중 HTML 파싱을 일시 중지합니다. DOM 지원 광고를 DOM에 삽입 할 수 있습니다. JSONP를 통해 <script> 태그를 가져올 필요가 없습니다. 닫기 </body> 태그 바로 앞에 작은 스크립트를 추가하여 필요한 경우 페이지에 <script> 태그를 추가하십시오.

+0

- 필자는 이것을 시도했지만 페이지로드 후에 자바 스크립트를 작성하면 코드가 페이지에 삽입되고 브라우저는 구문 분석하지 않으므로 실행되지 않는다. 이 문제에 대한 해결책을 알고 계십니까? –

0

함수 안에 jQuery의 getScript을 사용해보십시오. 나머지 페이지가 표시된 후에 광고가로드됩니다. document.write를가 정확히

(이 그 광고 스크립트 작동하는지 몰라요 ...)

+0

이 작업은 가능하지만 XSS 호출을해야합니다. –

0

시험 후 JQuery getScript 인라인을 사용합니다. 이것은 비동기식이며 $ (document) .ready()와 함께 사용할 필요가 없습니다.

<script>$.getScript("advendor.com\myad.php");</script> 

자세한 여기에 대한 논의가있다 : 다른 방법에 Can't append <script> element 이를 달성하고이 다른 방법으로 일을하려고 JQuery와의 동작.

+0

이 작업은 가능하지만 XSS 호출을해야합니다. –

관련 문제