Подтвердить что ты не робот

Почему некоторые сайты (например, facebook) загружают скрипты в iframe?

Почему некоторые сайты (например, facebook) загружают скрипты в iframe?

Позволяет ли сайту загружать более двух ресурсов за раз, потому что ресурсы iframe находятся на разных URL-адресах?

4b9b3361

Ответ 1

То, что вы делаете, может быть приложением коммуникации "Comet", используя скрытый iframe в качестве канала данных. Краткое объяснение техники в соответствии с Wikipedia:

Основной способ для динамического веб-приложения - использовать скрытый HTML-элемент IFrame (встроенный фрейм, который позволяет веб-сайту вставлять один HTML-документ внутри другого). Этот невидимый IFrame отправляется как блокированный блок, который неявно объявляет его бесконечно длинным (иногда называемым "вечным кадром" ). По мере того как события происходят, iframe постепенно заполняется тегами script, содержащими JavaScript, который должен быть выполнен в браузере. Поскольку браузеры обрабатывают HTML-страницы поэтапно, каждый тэг script выполняется по мере его получения.

Это можно использовать для чего-то вроде чата, где ожидается, что сообщения появятся без заметной задержки и, желательно, без периодического "опроса" для новых данных. Если это то, с чем вы столкнулись, вы должны увидеть несколько элементов <script> в фрейме, и больше следует добавить с течением времени.

Ответ 2

ИЗМЕНИТЬ

Итак, чтобы действительно ответить на ваш вопрос... Я не знаю! Однако следующая информация может быть полезна:

Facebook добавляет все JS-переменные и функции с вашим идентификатором приложения.

var ID;

становится

var 1262682068026-ID;

Это ограничивает сферу вашего javascript только вашим приложением, поэтому вы не можете использовать DOM для доступа к своим друзьям, номеру телефона, электронной почте, адресу и т.д., если это не разрешено. Это делает небольшую суб-песочницу для вас.

Дополнительная информация о области: Документы Facebook

Ответ 3

javascript, загруженный в iframe, не имеет доступа к объектам родительских страниц (ограничение между доменами)

Ответ 4

Они загружают кометы (aka comet, HTTP Push, долгоживущие и т.д.) в iFrame, потому что Internet Explorer в конечном итоге ее удаляет:

http://cometdaily.com/2007/10/25/http-streaming-and-internet-explorer/

Поскольку это эффективно непрерывный длинный опрос, это блокиратор, этот хак также увеличивает лимит соединения IE 2, что приводит к лучшей отзывчивости, справочной информации:

http://alex.dojotoolkit.org/2006/02/what-else-is-burried-down-in-the-depths-of-googles-amazing-javascript/