Задача Нужно сделать небольшую навигационную панельку, которая будет показываться на внешних сайтах. Т.е. кто-то заходит на 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) Какой из вариантов на Ваш взгляд наиболее приемлемый? |