JSONP против IFrame? - PullRequest
       20

JSONP против IFrame?

9 голосов
/ 11 июля 2010

Скоро мне понадобится создать виджет, который некоторые из наших клиентов смогут встроить в свои собственные сайты.

Для будущего видения мой виджет код для вставки будет выглядеть примерно так:

<script type="text/javascript" src="path/to/remote/file.js"></script>
<div id="my_widget"></div>

Каковы сильные и слабые стороны iframes против JSONP?

Существуют ли общие проблемы с SEO в iframes?

Ответы [ 4 ]

9 голосов
/ 12 июля 2010

Прежде всего, iframes и jsonp не являются взаимоисключающими: одно - средство визуализации, другое - средство связи.

Ваш выбор скорее между включением в документе (то есть созданием виджета в DOM хоста) или включением в iframe (то есть созданием нового отдельного DOM для виджета).

Преимуществом iframe является песочница: нет столкновения между вашим виджетом, javascript и css хоста. Это означает, что вы можете безопасно:

  • использовать / определять любую библиотеку JavaScript, которую вы хотите
  • использовать простой HTML-код вместе с простыми правилами CSS (что является очевидным бонусом для обслуживания)

Что касается недостатков:

  • iframe имеет большой вес и может серьезно замедлить рендеринг главной страницы
  • iframe также будет потреблять гораздо больше памяти и ресурсов, что может быть проблемой, если страница хоста предназначена для мобильных телефонов

Так что, если разумно предположить, что люди, использующие ваш виджет, захотят «адаптировать» свои страницы для него, идите по пути документа. Если нет, используйте iframe, но понимайте ограничения.

Что касается вопросов SEO, то пока вы динамически создаете виджет (будь то в документе или с фреймом), поисковые системы его не увидят. Я не знаю, если это то, что вы хотите, но это то, что вы получите;)

1 голос
/ 12 июля 2010

Вот несколько слайдов из презентации Алексея Секстона о междоменных сценариях

http://www.slideshare.net/SlexAxton/breaking-the-cross-domain-barrier

К сожалению, это только слайды, поэтому отсутствуют сопроводительные пояснения, но они могут быть полезны

0 голосов
/ 19 октября 2010

Я решил пойти с JSONP.Подробности того, как я это реализовал, вы можете увидеть здесь: Если я позволю партнерским сайтам публиковать мою RSS-ленту, повысит ли это мой рейтинг SEO?

Некоторые люди высказали свое мнение о SEO.Однако я все еще не уверен, поможет ли это SEO.У меня только есть идея проверить это, и я собираюсь осуществить это прямо сейчас!Я собираюсь сделать страницу только с JavaScript, который отображает виджет (в данном случае, фид).Затем я воспользуюсь инструментами Google для веб-мастеров, чтобы узнать, подберет ли Google какое-либо из ключевых слов в контенте канала.Я выложу ответ по ссылке выше после получения результатов.

Пожелайте нам всего наилучшего!

Matt

0 голосов
/ 12 июля 2010

Если вы делаете вызовы API и получаете только данные, JSONP приведет к повышению производительности. Если вы рендерите вещи, то вы должны использовать iframes. Если вы хотите запретить хост-сайту доступ к данным вашего виджета, лучше использовать iframes. Но если ваши данные общедоступны, то JSONP приведет к более простой реализации (поскольку iframes будет означать, что вам нужно иметь дело с изменением размера). С другой стороны, iframes обеспечивают хорошую песочницу CSS, поэтому вы не столкнетесь с CSS на главной странице.

...