Чем плохи фреймы?


Чем плохи фреймы? Время от времени мне попадаются сайты с фреймами. И также на каждом углу говорят, что фреймы - это плохо, а полную аргументацию этого утверждения найти затруднительно. Поэтому я решил написать эту статью, и дать подробный ответ на вопрос, чем плохи фреймы. Я приведу просто список недостатков фреймов: Затруднённая оптимизация. Фреймы крайне плохо индексируются. И несмотря на постоянное развитие поисковых систем, всё равно сайты с фреймами котируются хуже, ввиду затруднённой оптимизации. Это особенно важно, если Вы делаете сайт не для того, чтобы друзьям показать, а для заработка на нём. А практически у любого сайта львиная доля трафика идёт с поисковых систем, поэтому к вопросам SEO надо относиться очень серьёзно. Нельзя корректно использовать мета-данные. Действительно, фрейм - это отдельная HTML-страница, которая обязана иметь заголовок, описание и ключевые слова. И вот тут возникает противоречение, ведь фрейм находится на другой странице, у которой также имеются мета-данные. Это, в первую очередь, сказывается на оптимизации под поисковые системы. Плохая кроссбраузерность и адаптация к различным разрешениям. Вёрстка фреймов очень сложная, поскольку каждый браузер реагирует на них по-разному. Кто-то, если фрейм не помещается, начинает его просто обрезать, кто-то создаёт полосу прокрутки. В общем, делают что хотят. Можно попасть внутрь фрейма. Пользователи, которые это увидят, мягко говорят, будут шокированы. Суть в следующем. Если фрейм всё-таки проиндексируется, то в поиске будет дана ссылка не на родительскую страницу, а на сам фрейм. Например, если Вы держите какую-нибудь статью во фрейме, то посетитель увидит просто текст. Никакого меню, никакой шапки и прочего он не увидит. А всё потому, что поисковая система дала ссылку на сам фрейм, где находится только текст статьи. Но есть 2 классических задачи, почему фреймы всё-таки ещё используют. Первая - наиболее популярная, когда вытаскивают повторяющиеся блоки на сайте (например, меню, шапку, копирайты и прочее) в отдельный html-файл и через фрейм его подключают на каждой странице. Дело это безумно похвальное, потому что если на сайте, например, 1000 страниц, то захотев добавить ещё 1 пункт в меню, придётся исправлять 1000 страниц, что, конечно, неприятно. Но решается данная задача гораздо эффективнее через PHP и конструкцию require_once. //Тут HTML-код <?php require_once("blocks/menu.html"); ?> //Тут HTML-код Вот и вся проблема. Все преимущества удобства внесения изменений остались, а фреймы ушли. И вторая задача, где постоянно встречаются фреймы - это динамически обновляющиеся блоки, например, окна чатов. Когда-то давно эта проблема была вообще без помощи фреймов не разрешима, но это время уже прошло. Сейчас есть DOM, есть JavaScript, в котором имеется POST-отправка. Всё это в совокупности позволяет реализовать любые динамические процессы. В конце концов, можно использовать JQuery и Ajax, если DOM не знаете, а просто через JavaScript отправлять POST-запросы считаете неудобным. Поэтому и эту задачу можно решить, не используя никаких фреймов. Очень надеюсь, что теперь все, кто прочитает данную статью, откажутся от использования устаревших элементов и пойдут в ногу со временем.