Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Разбивка на страницы с помощью ява-скрипта (https://javascript.ru/forum/project/6823-razbivka-na-stranicy-s-pomoshhyu-yava-skripta.html)

А.Б. 25.12.2009 05:07

Разбивка на страницы с помощью ява-скрипта
 
Задача, видимо, редкая настолько, что в свое время не нашел ни одного упоминания даже попыток ее решения -- пришлось решать с нуля. Убедился в уникальности и в этом обсуждении. И все-таки допускаю, что причина отсутствия реализаций в нетрадиционности и непривычности задачи, а также в "главном минусе" (см. ниже), а не в том, что подобное в принципе никому не может быть нужно.

Дано: html-код.
Требуется: разбить его визуальное представление на блоки заданного размера с сохранением форматирования и имитацией последовательности страниц (т.е. новая страница может начинаться с продолжения последнего абзаца предыдущей).
Смысл:
  • оставлять нетронутым дизайн страницы,
  • сэкономить трафик,
  • создать особое эстетическое впечатление.
Главный минус: как всякий ajax, не дружит с поисковыми системами. Если рассчитывать, что скрипт бьет на страницы основное содержимое сайта, то прощай индексация ресурса! :( Я с этим ожидаемо столкнулся.

Если есть возможность и желание, посмотрите, прокомментируйте. Буду рад, если кому-то пригодится в практических целях: скрипт Э-стра (aka "Электронные страницы").

x-yuri 25.12.2009 08:22

Цитата:

Сообщение от А.Б.
создать особое эстетическое впечатление.

не заметил. У меня было впечатление, что область очень высокая, а текст ее почему-то всю не занимает

почему ты привел все плюсы, но только главный минус? Давай добавим немного минусов

А.Б. 25.12.2009 09:12

Цитата:

не заметил [особого эстетического впечатления]
Эстетика не создается скриптом самим по себе. Она -- результат воздействия дизайна в целом. Скрипт выполняет роль исключительно служебную: строго вписать текстовый блок в дизайн сайта. Следовательно, дизайн, как и содержательная специфика ресурса также должны соответствовать задаче.

Цитата:

У меня было впечатление, что область очень высокая, а текст ее почему-то всю не занимает
О какой области речь? О серой с блеклой надписью "результат" в центре? Она выделена только для того, чтобы в демонстрационных целях ограничить виртуальные страницы размерами 600x600 пикселей. Сами страницы залиты белым цветом, в демонстрации из размеры можно изменять вручную.

Цитата:

почему ты привел все плюсы, но только главный минус? Давай добавим немного минусов
Самый большой минус подобных списков минусов в том, что они претендуют на универсальность. Бывают случаи, когда 3 приведенные "минуса" не возникают или не имеют значения.

1. Неизменные адреса -- излечимая болезнь любого динамического содержимого web-страниц. Укажу особо, что скрипт не имеет к фреймам никакого отношения.

2. Так, отсутствие индексации не критично, если, например:
a) содержимое представляет собой тексты с нечеткой внутренней структурой (в частности, художественные),
b) у владельцев ресурса нет расчета привлекать посетителей через случайные запросы.
Уверен, можно подобрать и иные частные случаи слабой необходимости сквозной индексации сайтов.

3. Цитирую из ссылки на "минусы":
Цитата:

Главное Зло Мира — это когда кто-то пытается навязать другому своё представление «как лучше».
Как всякое пафосное обобщение, оно красиво звучит, но все-таки что является, а что не является навязыванием -- в каждом конкретном случае надо определять отдельно. Скрипт сам по себе ничего не навязывает, он только разбивает визуальное представление html-кода на прямоугольники заданного размера. Как использовать этот результат -- вопрос отдельный.

Цитата:

Если вы решаете за пользователя, что он должен отдать пол-экрана на ваше засраное меню, то это зло. Если вы решаете, что ему будет удобно крутить не весь экран, а уродский квадрат с откушенным скроллингом — это зло.
С этим не спорю. Однако, во-первых, предлагаемый скрипт как раз и создан, чтобы избежать прокрутки (скроллинга) текстового блока в принципе, подчеркиваю это особо. Во-вторых, повторюсь: он не имеет отношения к фреймам.

Kolyaj 25.12.2009 09:15

Цитата:

Сообщение от А.Б.
Укажу особо, что скрипт не имеет к фреймам никакого отношения.

Вы не поняли самого главного: ajax-сайты ничем не отличаются от сайтов на фреймах.

B~Vladi 25.12.2009 10:11

Цитата:

Сообщение от Kolyaj
Вы не поняли самого главного: ajax-сайты ничем не отличаются от сайтов на фреймах.

Разве что реализацией:)

А.Б. 25.12.2009 10:26

Цитата:

Сообщение от Kolyaj (Сообщение 39135)
Вы не поняли самого главного: ajax-сайты ничем не отличаются от сайтов на фреймах.

:) Ну вот, а три дня назад вы убеждали меня, что <select> и имитирующий его <div> -- это совершенно разные вещи.

Мы с вами во второй раз натыкаемся на то, что смешиваем техническую реализацию и итоговую функциональность, только поменялись местами. Да, с функциональной точки указанные в ссылке от x-yuri "минусы" присущи обеим технологиям -- и ajax, и фреймам. Однако ajax однозначно обладает выходящими за перечень этих "минусов" "плюсами", которые я и предлагаю использовать: отказаться от полос прокрутки в дизайне заданных размеров.

Kolyaj 25.12.2009 10:52

Цитата:

Сообщение от А.Б.
Ну вот, а три дня назад вы убеждали меня, что <select> и имитирующий его <div> -- это совершенно разные вещи.

Куда-то вы не туда ссылку дали, это раз. Во-вторых, в той теме я говорил именно про итоговую функциональность, про реализацию там ни слова.

А.Б. 25.12.2009 13:10

Цитата:

Сообщение от Kolyaj (Сообщение 39141)
...в той теме я говорил именно про итоговую функциональность, про реализацию там ни слова.

Выходит, мы говорили ровно об одном и том же. :yes:
P.S. Ссылку в своем предыдущем ответе исправил.

Kolyaj 25.12.2009 13:20

Цитата:

Сообщение от А.Б.
Выходит, мы говорили ровно об одном и том же.

Только вы почему-то считаете select с жестким набором вариантов выбора идентичным полю ввода, под которым показываются варианты в зависимости от введенного текста.

А.Б. 25.12.2009 13:32

Ах, вот в чем расхождения!
Ну, тогда вы правы! Действительно, <input type="text" /> + <div> идентичны combobox в языках, типа Delphi и разновидностях C, и не являются чистым аналогом <select>. Признаю.


Часовой пояс GMT +3, время: 20:34.