Описание системы Stickies
В предыдущих разделах было показано, как загрузить JavaScript-код. Вы эффективно отделили JavaScript-код от страницы, на которой он выполняется, обеспечив раздельное функционирование. Но это только основа, на которой вам предстоит создать более сложное приложение - систему Stickies.
Что такое наклейка
Наклейка - это маленькая заметка, прикрепляемая поверх Web-страницы, как показано на рисунке 4.
Рисунок 4. Наклейка, размещенная в верхней части Web-страницы
Наклейка не является частью страницы; она постоянно находится на одном и том же уровне. В верхней части наклеек имеются четыре кнопки. Они позволяют пользователям управлять функциональностью наклейки:
-
Close: Не показывать данную наклейку, но и не удалять ее.
-
Edit: Редактировать текст наклейки.
-
New: Создать новую чистую наклейку.
-
Delete: Закрыть наклейку и удалить ее из базы данных.
Все наклейки имеют некоторые общие свойства: они являются персистентными, связанными с URL, прозрачно персистентными, независимыми от базовой Web-страницы и неинвазивными. Рассмотрим каждое из этих свойств детально:
Персистентность
При создании наклейки ее расположение и содержимое сохраняются на диске Web-сервера средствами серверного CGI-сценария под названием persistence.cgi. Клиентский JavaScript-код взаимодействует с сервером через скрытый фрейм, или iframe. iframe аналогичен обычному фрейму, который содержит свой собственный документ, однако, в отличие от него, iframe постоянно находится посреди страницы, а не во фреймсете. Поэтому iframe не обязан иметь видимые границы и может быть полностью невидимым.
Клиентский код создает в iframe форму. Поле action формы указывает на persistence.cgi. Данные формы передаются в persistence.cgi, а выходные данные от persistence.cgi передаются в iframe. Затем клиентский код извлекает необходимую информацию из iframe.
Связь с URL
При сохранении каждой наклейки в базу записываются два значения: URL страницы и уникальный числовой идентификатор (ID). URL связывает наклейку с текущей страницей, а идентификатор предназначен для того, чтобы отличать друг от друга множество наклеек страницы. Эта комбинация URL и идентификатора является уникальной для каждой наклейки.
Пользователь может создать наклейки на странице, покинуть страницу и закрыть браузер, но когда он вернется на эту страницу и нажмет на букмарклет Stickies, наклейки появятся снова.
Прозрачная персистентность
Каждый раз, когда пользователь каким-либо образом изменяет наклейку, изменения автоматически сохраняются на сервере. Каждый раз, когда пользователь перемещает наклейку, данные о ее новом местоположении также сохраняются на сервере. Похоже на стрельбу из пушки по воробьям, но это намного проще, чем сохранять данные при закрытии страницы пользователем.
Независимость от базовой Web-страницы
Хотя наклейки связаны с Web-страницей, они не являются ее частью. Правда, при загрузке наклейки помещаются в DOM-дерево Web-страницы, но это сделано для того, чтобы минимизировать влияние на страницу. Наклейка не должна никаким образом изменять вид или действия страницы. Конечно, наклейка закрывает часть страницы, но ее всегда можно переместить в другое место.
Неинвазивность
Сочетание предыдущих свойств означает, что наклейки являются неинвазивными, т.е. хорошо сосуществуют с другими Web-элементами. Вот почему, изучая систему Stickies, включающую в себя множество различных аспектов Ajax-программирования, можно больше узнать об Ajax.
Теперь я могу детально рассмотреть систему Stickies, начиная с первого нажатия на букмарклет.
|