2010-11-30 1 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>, у меня может быть целых пять из этих рекламных вызовов на одной странице. У каждого есть свои собственные изображения/отслеживание/etc ...

Моя проблема аналогична адресу, адресуемому here, за исключением того, что мне нужно получить тег «script» с централизованного сервера из нескольких доменов, и мне нужно сделать document.write внутри определенного элемента dom, я хорошо разбираюсь в jQuery, если это помогает.

+1

Поддерживает ли служба поддержки JSONP? – alex 2010-11-30 23:28:31

+0

Я написал это, так что, если это необходимо для этого, я добавлю эту функцию – 2010-11-30 23:38:44

ответ

0

Оказывается, это то, что мне нужно (link text). Если вам нужно загрузить теги скриптов, которые загружают и выполняют код после события загрузки страницы, это путь.

0

document.write() очень медленный и приостанавливает разбор HTML во время его работы. Вы можете вставлять объявления в DOM на DOM-ready. Нет необходимости тянуть <script> -tag через JSONP. Добавьте небольшой скрипт прямо перед закрытием </body> -tag, который добавляет эти <script>-тэги на страницу, где это необходимо.

+0

-elusive. Я попытался сделать это, но запись javascript после загрузки страницы просто помещает код на страницу, браузер никогда не анализирует ее, поэтому ее никогда не выполнял. Вы знаете решение этой проблемы. – 2011-01-04 13:25:20

0

Попробуйте использовать jQuery's getScript, внутри функции $(document).ready, чтобы она загружала объявления после показа остальной части страницы.

(я не знаю, если это работает с этими сценариями объявлений ...)

+0

это сработает, но мне нужно сделать XSS-вызов – 2011-01-04 13:40:33

0

Try и использовать JQuery getScript инлайн, именно там, где document.write есть. Это асинхронно и не нужно использовать в сочетании с $ (document) .ready().

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

Существует подробное обсуждение здесь: Can't append <script> element других способов для достижения этой цели и поведение JQuery при попытке сделать это другими способами.

 Смежные вопросы

  • Нет связанных вопросов^_^