![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Это не та часть парсера-генератора, заложенного в другой теме, но смежная задача, выполняемая на JS.
Идея задачи в том, что при выводе страниц возникает вопрос: не слишком ли много мы повторяемся с траффиком, выводя на каждой странице меню навигации, шапку, низ (footer) страницы? Традиционно вывод повторений считают неизбежным злом, не без оснований полагая, что одна страница лучше фреймов. Но есть выход - не повторять вывод заголовков и не использовать фреймы, если генерировать заголовки из файла Javascript. Обычно файлы *.js кешируются браузером. Поэтому, написав генерацию заголовка через JS, сильно уменьшаем размеры повторяющейся части страницы. Необходимо помнить, что поисковики и посетители с отключённым JS всей роскоши не увидят. Но обратим мнимый недостаток в достоинство: оформим страницу так, чтобы без JS она была упрощённой, но со всеми важными частями контента - краткая навигация, заголовки, содержание. Тогда вес ключевых слов заголовка и начала контента даже повысится, если он будет ближе к началу страницы. Такова общая идея представляемого кода. Сам код, кроме оговоренных деталей насчёт видимости важных ссылок при отклюяённом JS, довольно бесхитростен: вывод содержания через document.write() и вынос функций генерации в файл *.js. После такого вступления его не надо даже писать, но кто хочет увидеть его пример работы, смотрите код страницы http://js2.ru/files/article-DOM.shtml. Всё динамическое оформление шапки вынесено в http://js2.ru/images/autom.js (функции capHead(), capHead2(), plavBlok()). Отключите поддержку JS в браузере - увидите вполне сносную страницу с минимально необходимой шапкой навигации и работающими ссылками. Далее, задача состоит в том, что хотя код такого типа можно писать вручную каждый раз, лучше, если будем иметь автоматику выделения частей, выносимых в *.js . Вероятно, со временем мы сможем написать такой автоматизирующий скрипт как компонет библиотеки ViJio (или другой). Если говорить об этой библиотеке, то я не знаю, какое наполнение её было задумано инициатором проекта (Sardar), поэтому о включении данной автоматики в библиотеку я говорю условно. Компонент не будет чисто на JS, потому что он должен сгенерировать код двух или 3 файлов (JS, CSS, HTML), взяв за основу одну HTML-страницу как образец. На этой странице разработчик указывает (например, средствами JS в designMode), какие части кода должны уйти в *.js, программа выводит. Можно реализовать на любом полноценном языке программирования, хотя бы на PHP. Поэтому рассматриваем приведённый пример как часть этой более общей задачи. Это сообщение отредактировал(а) 12345c - 3.3.2008, 14:35 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
ИМХО:
В ViJio может пойти всё, что интересно, на чём можно обучаться. Предложи дизайн, разбей по задачам, я и все кому интересно с хорошими коментами напишем. Извиняюсь за паузу в две недели, был черезвычайно занят. Резюмирую: такое я бы делал на XML+XSLT -> XHTML на клиенте без всяких скриптов. По нескольким причинам:
-------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Блохи имеют свойство размножаться. Если об их контроле не позаботиться сразу. Если у меня в примере шапка - 5-8 К, а содержание - 30 К, то бывают страницы с шапкой 70 К и содержанием 1 К.
XSLT - метод, прописанный для таких дел, лишь бы он поддерживался. А XSLT кешируется? а DOM многословен. Конечно, это же самое можно реализовать 2 другими способами - innerHTML и DOM. Но пока прекрасно работает document.write, писать лучше на нём, а потом при необходимости перейти на DOM. (NN4 с таким подходом дико глючил, не переносил частичной выдачи элемента через write(), наверное, поэтому за него (подход) не брались.) |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Это физически не возможно... что туда можно положить? Не путаем вёрстку (текст) с картинками, вёрстка шапки от силы 50 строк, повырезав кусочки от силы сэкономим пару кб. Все картинки и весь с этим связанный вес остаються. Стили да, это .xsl файлы, не изменяються, кешируються как и .js -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Я называю шапкой всю почти статическую муть. Пример:
Сайт издательства, страница http://www.piter.com/book_about.phtml?id=9...10&start=10 Вес 68К (смотрю только код), шапка 20К, правая сторона - 24К, которые повторяются. И так повсеместно. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |