Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с частями страницы (блоками), ещё заготовка для библ. компонента 
:(
    Опции темы
12345c
Дата 28.8.2006, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



В настоящее время мы массово умеем работать с частями страницы обычно в 2 вариантах:
1) делать якоря на внутренностях страницы, чтобы организовать навигацию;
2) скрывать/показывать блоки кликом на управляющем объекте - заголовке или пункте меню.

Технология Ajax позволяет работать с содержимым более широко, появилась удобная и развиваемая возможность подгружать части страницы. Из -за объёма хранимой на странице информации продолжает быть актуальным сокрытие части страницы в свёрнутых блоках информации. Отдельно якоря и простые скрипты свёртки уже не подходят для управления страницей. Назревает необходимость сделать инстумент управления с рядом частоиспользуемых функций. Идеи по отображению содержимого страниц описывались в рамках темы "ветвь документа с определяемым представлением ". Там шла речь о многообразии представлений одних и тех же данных сайта и описывались возможные представления их: 
Цитата
Содержимое контейнера данных может быть:
просто часть документа, html-текст;
...
список  - следующий уровень структуры;
список с внедрёнными в поток подсказками.
Здесь попробуем ограничить рамки осмотра представлений блоком - частью страницы, занимающим всю её ширину.

Представим модель страницы, представляющую собой заголовок с навигацией и последовательность блоков на всю ширину страницы. Каждый из них может как сворачиваться до заголовка, так и полностью удаляться. В любое место списка могут быть подгружены другие блоки. Это - часто встречающаяся ситуация при показе новостей, сообщений, правок, коротких статей или их частей. Объединение скриптов управления блоками и ссылками на якоря позволило бы перевести управление страницей на другой, более удобный уровень.
PM WWW   Вверх
12345c
Дата 28.8.2006, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Ссылка по теме: http://webplanet.ru/column/service/shepele...emanticweb.html

Цитата
Интересно, что в этом контексте понемногу всплывают недооцененные когда-то элементы систем "правильного гипертекста" - те, что готовы работать в поддержку Четырех Ценностей. Скажем, давняя идея Дугласа Энгельбарта о том, что ссылаться можно не только на статью целиком, но и на абсолютно любую ее часть, постепенно "находит себя" - сначала в ссылках-якорях, потом в purple numbers, и совсем недавно - в новом сервисе, который позволяет сослаться на любую цитату на странице, не изменяя саму эту страницу. И это - определенно удобно. Даже претенциозный Сами-Знаете-Кто убрал из своего Ководства некогда активно пропагандируемое "якорям - нет" и снабдил каждый абзац Ководства purple number'ом (но у нас "все ходы записаны").



PM WWW   Вверх
Sardar
Дата 28.8.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



12345c, а в чём  вопрос/проблема/идея?
Тенически тебе придёться указать адрес текста, который будет содержать параметры скрипту. Якоря будут работать хорошо если отдавать страницу селиком, где якор присутствует, будем сразу прыгать куда надо. Если реально отдавать малую часть по запросу,  то якорь можно принимать сктиптами и выдавать инфу, например:
.http://localhost/xml/workers/Sam Carter#birthday
выдаст <date timestamp="###" format="yyyy-mm-dd">1974-02-15</date>

В то время если обратиться:
.http://localhost/workers/Sam Carter
Выдаст персональную страницу. Тут всё от фантазии разработчика и заказчика.

В чём проблема то была? smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 29.8.2006, 01:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Или я подхожу издалека, или ты спешишь узнать, что будет дальше smile

Есть тут идея, я пишу её для порождения ассоциаций у читателей и вызывания подсказок с их стороны. Но если всё расскажу сам, это может быть неинтересно? Идея поставлена так: нужно иметь навигацию по частям страниц сайта. Примитивная механика якорей не подходит. Надо сделать удобную, юзабельную подсистему.
PM WWW   Вверх
Sardar
Дата 29.8.2006, 02:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(12345c @  29.8.2006,  00:35 Найти цитируемый пост)
Идея поставлена так: нужно иметь навигацию по частям страниц сайта. Примитивная механика якорей не подходит. Надо сделать удобную, юзабельную подсистему. 

Выше я привёл как я бы делал. Т.е. сделал бы три точки входа:
  •  / - для веб страничек, отдают HTML не зависимо от UserAgent (могут подстраиваться под поисковики)
  •  /xml - отдают XML, обычно маленькие инфо сервисы
  •  /wml - никогда не реализовывал, но реврайт ставлю... может руки дойдут smile
Далее путь до самого ресурса разбираемый картой ресурсов, обычно это модуль + аргументы. Просто аргументы в [], навигация (например /news/archive/2006/07/12) путями. Таким образом можно узнать только то, что я хочу отдать, а именно какие модули доступны у движка. Отсюда не могу понять в чём всё таки идея, ведь каждый реализует подобное уже не первый год. Или хочешь выработать какие то рекомендации для общественности? smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 29.8.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Каждый реализует (не первый год) динамическое управление блоками страницы? Что-то первый раз об этом слышу.
PM WWW   Вверх
Sardar
Дата 29.8.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



12345c, тогда я не понял о чём ты. Обрисуй пример, обрисуй как "для дурака", т.е. клик сюда, будет то то smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
12345c
Дата 29.8.2006, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Берём эту страницу, которая фигурировала в недавней теме как пример: http://js2.ru/files/article-DOM.shtml . У неё около 10 частей, из них 8 нижних свёрнуты. Разворачиваются по клику на боковой полосе бордюра возле текста.

Если внутренние ссылки указывают на свёрнутый блок, они не сработают. Клик по якорю прокрутит страницу не очень удобно (начало текста вверху). Указанный блок не подсветится. Много ещё можно придумать удобств для навигации, которые не мешает реализовать.

1. Например, сейчас скрипт сворачивания не очень заметен. Надо сделать, чтобы активная область для разворачивания переходила на заголовок.
2. Не очень хорошо описано понятие заголовка - каждый раз конкретный тег. Полезно будет, если при отсутствии выделенного заголовка скрипт сам бы выбирал начало текста.
3. Нет подсказки, какой размер блока скрыт под заголовком.
4. клик по скрытому якорю - логично, чтобы разворачивал блок с ним и подкручивал страницу. Если конец страницы - всё равно бы подкручивал так, чтобы указанный фрагмент с якорем был бы в середине окна. 
5. Отдельная функция перехода по якорю - подсветка фрагмента (сменить фон, нарисовать рамку, полосу слева или сделать серым весь остальной фон).
6. Другая функция - подгрузка раздела вместо разворачивания.

Это называется управление частями страницы.

Это сообщение отредактировал(а) 12345c - 3.3.2008, 14:12


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
dm9
Дата 30.8.2006, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Я думал об этом, очень интересная тема. Особенно всвязи с AJAX, который не модифицирует адресную строку и оставляет передачу ссылок на нашей программерской совести.

Прихожу к иерархической компонентной модели и глобальному рекурсивному опросу каждого компонента с последующей генерацией URL-a на основе этого опроса. 
Небольшая заметка: разумеется, после перехода по такой ссылке адресная строка должна чиститься, а информация передаваться через сессию.

PM MAIL ICQ   Вверх
Sardar
Дата 30.8.2006, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Цитата(dm9 @  30.8.2006,  13:05 Найти цитируемый пост)
разумеется, после перехода по такой ссылке адресная строка должна чиститься, а информация передаваться через сессию.

dm9, на текущий момент ситуация: или аякс или смена адреса. Что бы сменить адрес нужна перезагрузка, только смена якоря перезагрузку страницы не вызывает, но! никак не отслеживаеться через JS. Можно отследить пользуя скрытую флешку (была тут тема, хотя не помню было ли там событие или всё таки по таймеру проверяли), но это изврат.

ИМХО, в смене адреса нет необходимости если есть хорошо видная ссылка на "текущую страницу" (в хлебных крошках например). Естественно по прямой ссылке сервер должен выдавать нужный контент, а после уже аякс вступает в работу.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
dm9
Дата 30.8.2006, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: нет
Всего: 137



Сардар, мы про одно и то же, но разными словами smile

Предположим, мы имеем AJAX-приложение и хотим зафиксировать его текущее состояние с тем, чтобы «передать ссылку другу». Компонентная модель подразумевает рекурсивный опрос всех компонентов страницы, и генерацию «текущего адреса». Это псевдо-адрес, на самом деле. Его нет. Это всего лишь главная страница (у AJAX-приложения только главная и есть) плюс куча параметров по подгрузке/разворачиванию компонентов.

Я там написал «Небольшая заметка», и это действительно так. Я подразумевал, что мы запрашиваем что-то вроде domain.com/1=c&1_4=wqw&1_5=112&1_5_6_6=asdzcZxc, расшифруем эти параметры, понимаем, какие компоненты надо подгрузить и пишем эти параметры в сессию. А потом делаем `Location: domain.com`, чтобы не портить адресную строку. А портить её нельзя потом, что состояние компонентов может измениться и не соответствовать текущему URL-у.

Вопрос о методе сериализации состояния компонентов в набор параметров остаётся для меня пока открытым.

PM MAIL ICQ   Вверх
12345c
Дата 30.8.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Sardar, отследить нельзя было только переходы по браузерным кнопкам истории в IE. Остальное всё работало (и те же кнопки в FF, Opera). Клики по ссылкам тоже хорошо отслеживаются. Поэтому на задействование отображения якорей в Аяксе в адресной строке немного недостаёт возможностей IE, и то при работе с кнопками истории. Выход - делать дублирующие кнопки истории для IE, а при попытке нажать браузерные выдавать предупреждение о желательности работы с дублирующими.

Впрочем, работа Аякса со страницей и адресной строкой - это отдельная тема и библиотечная функция. Связанная с обсуждаемой темой в плоскости подгрузки данных. Про работу с адресной строкой я тоже хочу создать тему, после того как доберусь до процесса решения этой задачи.


dm9, в плане связки с Аяксом я понимаю так, что должны существовать 2 представления УРЛа: нормальное и подгружаемое. Вид нормального представления адресной строки - обычный автоматический - каталог, страница, параметры. При навигации через Аякс (которая может начаться с любой страницы) адресная строка до значка "#" замирает или мы один раз принудительно переходим в красиво смотрящийся каталог, а затем вся информация после "#" должна содержать все параметры (каталог, страница, параметры), существующие в нормальном представлении. Например,

http://<какой-то сайт>/files/js/books/reference33.php?page=44
равносильно
http://<какой-то сайт>/#files/js/books/reference33.php?page=44
где всё, что после "#" - это имя якоря.

Не проверял читаемость в якоре всех спецсимволов, но многие он читает. Одна особенность: чтобы якоря любого вида с аяксом или вообще корректно работали, сам якорь должен существовать на странице, иначе он не впишется в историю. Это значит, что по клику на аяксовую ссылку где-то на странице надо сначала создать якорь, потом кликнуть и перейти. Такой переход проверялся, работает во всех, если якорь уже есть на странице, но не проверялось создание якоря непосредственно перед переходом.

Добавлено @ 15:31 
Цитата(12345c @  30.8.2006,  15:27 Найти цитируемый пост)
а при попытке нажать браузерные выдавать предупреждение о желательности работы с дублирующими.
(мои опыты показали, что первое нажатие в ИЕ кнопки "Назад" отслеживается через _увеличение_ history.length по таймеру, а больше никак, последующие вообще никак. Но этого достаточно, чтобы предупредить пользователя о некорректности работы этих кнопок.)

PM WWW   Вверх
Sardar
Дата 30.8.2006, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



dm9, ИМХО всегда считал такой подход не правильным, вдруг у юзера нет JS или аякс глючит, всё убьёться smile

Любая страница, любой ресурс должен уметь генерить обычную страницу + аякс, который сразу после загрузки ловит и обрабатывает все ссылки сам. Затем запросы идут аяксом, отдаёться только контент в XML кратко. Конечно на сервере потребуеться делать две точки входа (например реврайт на /, /xml и /print ), где XML версия очень проста, ведь не нужно подгружать меню и прочие модули.

Плюсы подхода: всё продолжает работать где угодно, хотя не аяксовая версия почти всегда сильно урезана по функционалу. Такова цена за любовь к левым браузерам. Минусы: в адресной строке стоит адрес самой первой страницы. Лечиться твоим методом, но потребуеться открыть сессию или времено адрес положить в куки + лишний редирект, хотя не страшно smile



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0832 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.