Сценарий виджета Javascript (похожий на Facebook Like) против подхода Iframe - PullRequest
4 голосов
/ 04 августа 2010

При создании виджета кнопки социальных закладок для использования на других сайтах возникает несколько проблем.Мы только недавно открыли сторонние аспекты этого.(сообщение в блоге здесь: http://www.mellowmorning.com/2010/08/03/creating-your-own-diggfacebook-liketweetmeme-button/)

По сути, цель состоит в том, чтобы заменить выбранные элементы «люби его» кнопкой, показывающей, как много людей полюбили его.

Существует два подхода к этому. -замените A на html (подход с использованием сценариев) - замените A с помощью iframe (подход с использованием iframe)

Между этими подходами есть довольно сложные различия. Один из них особенно неприятен - невозможность взаимодействия с использованием сценария с помощью этого сценария.

Может кто-нибудь предложить обходной путь для связи между всплывающим окном входа в систему и кнопкой. (То есть, когда вы что-то любите через всплывающее окно ?, как вы обновляете счетчик на кнопке, не останавливаясь тем же источником?защита ..)

Какой подход вы рекомендуете. Iframe или Script и почему?

С этими различиями я столкнулся: Iframe vs Script

Iframe:

  • Возможно всплывающее сообщение Сценарий не может связываться с всплывающими окнами, которые он создает из-за того же источникав ограничениях.Однако iframe может принадлежать тому же домену, что и всплывающее окно, и свободно общаться.Это облегчает работу пользователя, например, при входе в систему.
  • Легче в разработке Подход iframe проще в разработке и требует меньше кода.
  • Параллельная загрузка в IE IE не загружает счетчиксценарии параллельно, но это делает для IFRAMEs.Делая этот подход несколько быстрее.
  • Независимые CSS Внешние сайты не влияют на CSS вашей кнопки, если вы используете технику iframe.Недостаток в том, что это делает невозможным интеграцию таких вещей с другим сайтом.(Например, компактная кнопка Fashiolista).
  • Независимый подход iframe делает очень трудным для других сайтов игру таких пользователей, как / love action.При использовании сценариев иностранный сайт может просто вызвать ваш javascript, чтобы подделать кого-то, кто любит продукт.Этой свободой можно злоупотреблять, но она также позволяет создавать коллажи.

Скрипт:

  • Более низкая загрузка dom Создание фреймов занимает у браузера намного больше времени.
  • Более медленная воспринимаемая нагрузка Сценарий позволяет форматировать кнопки перед загрузкой данных.Значительно увеличивает воспринимаемую скорость загрузки.
  • Нет общей функциональности. Кнопки не могут использовать одну и ту же функцию.Поэтому, когда кто-то входит в систему для одной кнопки, другие невозможно обновить.

Ответы [ 2 ]

4 голосов
/ 07 августа 2010

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

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

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

Конечно, XDM налагает некоторые трудности, но если вы используете проверенное решение, такое как easyXDM , то это не должно быть большой проблемой.

Вот пример , который показывает, как взаимодействовать с всплывающим окном.

2 голосов
/ 08 августа 2010

В основном 2 вопроса - Какой метод лучше всего подходит? - Обход проблем со всплывающим сообщением, с которыми сталкивается сценарий

Спасибо за информацию во всплывающем окне!Какова основная технология для поддержки этих междоменных всплывающих окон?

Если я правильно понимаю ваш третий вариант: - внешний сайт загружает наши js - js заменяет элементы dom - js открывает скрытый iframe для собственного домена

Как мне открыть всплывающее окно, которое по-прежнему позволяет общаться с нашими js, загруженными на иностранный сайт?Для этого всплывающее окно должно быть создано в iframe правильно?И нам нужен метод для общения с iframe.Я думал, что я не могу ничего делать с iframe, кроме установки его window.location.href.Не могли бы вы объяснить, как это работает?

...