Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Кроссдоменная панель навигации


Автор: Alix36 19.6.2012, 22:42
Задача
Нужно сделать небольшую навигационную панельку, которая будет показываться на внешних сайтах.
Т.е. кто-то заходит на url "myserver.ru/?ya.ru" и видит обычную страницу яндекса + панельку. 

Вариант 1 -- Server-side трансляция
На сервер пишем демон/скрипт, который по запросу "скачивает" разметку целевой страницы, включает в неё процедуры(js) создания окна, и показывает конечному пользователю.
  •  Серверная нагрузка, как таковая. 
  •  Проблема с относительными путями. Придется парсить не только html, но и CSS, да и JS скрипты тоже. Это явно не ускорит отклик.
  •  Фактически мы грабим сайты, на контент. Этого не хотелось. Цели другие. 
  •  А так же мы отбираем просмотры страниц у целевых сайтов.  
  •  Реализация довольно трудоемкая, в частности парсера.
  •  CSS страницы не изолированы. Т.е. придется панельку описать максимально подробно стили каждого элемента нашей панельки.

Вариант 2 -- CrossDomain Ajax
Одним из известных способов кроссдоменного ajax(через тот же aol) собираем контент целевой страницы + генерим панельку. Отображаем все вместе. В общем и целом - 1 вариант, но без сервер-сайд решений. 
  •  Проблема с относительными путями. Опять же придется все парсить, что может уже подвесить весь браузер, в случае если много служебного контента(css, js).
  •  Со стороны грабежа контента я в сомнениях. Поидеи поисковые пауки не умеют выполнять js, соотв. Т.е. поидеи контент останется при авторах.
  •  Фоновое посещение страницы будет производиться. Если мы сами не будем блокировать контент на страницах(например рекламные блоки), то авторы сайта останутся при всем своем, просто с нашего домена. 
  •  Реализация довольно трудоемкая, в частности парсера.
  •  CSS страницы не изолированы. Т.е. придется панельку описать максимально подробно стили каждого элемента нашей панельки.
Вариант 3 -- iframe
В iframe открываем конечную страницу, нашу панельку соотв. генерим в нашем html. 
  •  Нет проблем с отн. путями. Все изолируется. 
  •  Фактически открывается 2ое окно браузера, проблем с посещениями, или блокировкой рекламного контента быть не может. 
  •  Реализация проста до ужаса. 
  •  CSS страницы изолированы. Изобретать ничего не нужно.
  •  Все в iframe хорошо, кроме того, что они как-бы deprecated. А так же агрят антивирусы, которые не утруждаются проверкой, является ли в действительности фрейм вредоностным.
  •  if (window!= top) top.location.href=location.href; И подобные блокировки не могут не разочаровывать, на некоторых сайтах.

Вопросы
1) Я во всех своих утверждениях прав? 
2) Есть ли варинат 4-99 ? например более современные, чем iframe?
3) Какой из вариантов на Ваш взгляд наиболее приемлемый?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)