![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Практическое продолжение темы, начатой здесь - http://forum.vingrad.ru/index.php?showtopic=108433 ("Сделать парсер-генератор кода страницы ").
Сделан генератор кода страницы на основе шаблонов, работающих по структуре данных. Вариант рабочий, не для образца, потому что мне не нравится ненаглядность исполняемого шаблона, отображённого в тексте программы. Шаблон приходится изображать "вверх ногами" - сначала мелкие детали страницы, потом крупные, а связано с тем, что он исполняемый, в шаблон включены строки исполняемого текста. Сделать можно не циклом, а рекурсией, но нагляднее не становится. Задача скрипта - ужать данные большой-большой структурированной страницы, чтобы удобнее было работать с исходным кодом данных. Хотелось бы в будущем отойти от написания индивидуальных генераторов для страниц, иметь управляемость и расширяемость представленного в нём шаблона. Не буду приводить код - всё есть на странице http://js2.ru/files/js-man3.htm (55 K, из них кода - 1.5 К). Самое интересное начинается с заголовка "Клиентские объекты" в коде. Примерно строка - 580. Функция rdCell() обрабатывает подаваемый ей код, но интересен вызов её:
Практические результаты - участок кода, который в HTML занимал около 140К, в кодированном виде занимает около 25 К. Важно, что он сохраняет читабельность. Но далее требуется, чтобы он мог достаточно легко развиваться проектировщиком страницы - не просто добавлять новые элементы списка, которые описаны шаблоном fCell , а изменять структуру их. Поэтому есть желание сделать шаблон наглядным. Это сообщение отредактировал(а) 12345c - 3.3.2008, 14:10 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
1) 12345c - ты шаман
2) вёрстка впаяна в скрипт, следовательно HTML only 3) формат подаваемых данных на прямую зависит от скрипта, меняем скрипт, всё может слететь 4) не все шаманы как ты, следовательно нужно учить Отсюда, повтороюсь, я бы делал на XML + XSLT, как и большинство наверное. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Конечно, HTML, на него рассчитано. XML стоит делать до него. Переводить на сервере ХML в такую структуру, генерировать скрипт генерации кода, скомпилировать страницу, если она в созданном виде будет вызываться многократно.
|
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Посмотри на это, если у тебя ещё останеться желание генерить из XML страницу с особым форматом и скриптами, то приведи хотя бы пример зачем такие сложности если чистый XML можно отправить клиенту (опера вроде как XSLT уже поддерживает, не знаю точно), а форматирование отложить в кешируемые стили. Плюсы компактности на лицо (тем более если передача gzip'ом), плюсы переносимости тоже, хоть XHTML, хоть XSL-FO, хоть что угодно. Не отговариваю, просто это первый проект который я даже с 12 раза не врубаюсь как применить, когда есть более лучшие альтернативы. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Хочу, чтобы на локальном компьютере не в архиве страницы занимали тоже меньше места.
А где прочитать про зипование при передаче? Известно, что в модемной связи по V42+ поток зипуется, а до местного провайдера как? И делается ли сжатие по ADSL и локальным сетям? Через что этот архив смотреть? (localisation_static) XSLT - конечно, хорошая и правильная альтернатива, только XML с тегами иметь придётся. В зипе они уничтожаются, но в открытом коде занимают место. В конце этот алгоритм должен перекликаться по содержанию с XSLT-кодом для XML-представления. |
|||
|
||||
| Sardar |
|
||||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
Гуглить HTTP заголовок accept-encoding, используеться часто gzip, по моему реже deflate (простой zip). Сжатие на уровне HTTP, а не ниже по слоям.
Хорошо спроектированный XML занимает сам по себе немного места, также модно XML ложить в архив (gzip), файл действительно почти ничего не весит тогда.
Какой алгоритм? В XML документе оставляем <?xml-stylesheet type="text/xsl" href="путь до твоего .xsl"?>, браузер при открытии сам поднимет стили и трансформирует документ по ним в нечто красивое/читабельное. И никаких заморочек -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
||||
|
|||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |