 | Уровень сложности: средний Грэг Тревис, вице-президент, разработка технологий, Dynamic Logic
28.09.2007 Возможность добавления заметок и комментариев к вашему Web-сайту может стать мощным и привлекательным средством для пользователей. Данное руководство рассказывает о том, как реализовать систему пользовательских комментариев (основанную на технологии Asynchronous JavaScript and XML (AJAX)) в виде желтых наклеек для заметок, размещаемых поверх содержимого Web-сайта.
Перед началом работы
Узнайте, чего ожидать от данного руководства и как извлечь из него максимальную пользу.
Об этом руководстве
При помощи AJAX-технологии, описываемой в данном руководстве, вы предоставите пользователям мощное средство размещения наклеек на вашем Web-сайте. Пользователи смогут размещать эти наклейки на любой Web-странице при помощи букмарклета, созданного специально для вашего сайта. При этом не нужно применять какую-то особую технологию генерирования сайта или изменять содержимое существующих страниц. Единственное, что потребует дополнительной настройки - Perl-сценарий на сервере, в котором хранятся комментарии.
AJAX-технология может быть сложной и включать в себя HTML, JavaScript-код и серверный код, иначе говоря - все виды основных Web-технологий. Настоящее руководство касается роли всех этих технологий и демонстрирует приемы, делающие разработку простой и надежной.
Вы установите систему Stickies (Наклейки), а также получите сведения о структуре AJAX и ее интеграции с традиционной технологией Web-страницы.
Цели
В данном руководстве рассказывается, как создать приложение Stickies на языке JavaScript и букмарклет, запускающий систему, а также серверное ПО для хранения данных.
В частности, в руководстве освещаются следующие темы:
- Создание и загрузка автономного JavaScript-кода для системы Stickies.
- Запуск JavaScript-кода из букмарклета.
- Начальная загрузка кода для системы Stickies.
- Создание кода Stickies.
- Взаимодействие с Document Object Model (DOM) для Web-страниц.
- Создание редактируемых наклеек.
- Создание класса, обеспечивающего взаимодействие наклеек с сервером.
- Сохранение и загрузка наклеек.
Лучший способ использовать данное руководство - прочесть его до конца, а затем загрузить и установить исходный код (см. раздел "Загрузка"). Вы можете модифицировать код, чтобы поэкспериментировать, или использовать его части в ваших собственных программах.
Предварительные условия
Чтобы использовать руководство, вы должны иметь базовые знания о JavaScript и DOM. Хотя серверное ПО написано на Perl, его реализация не является предметом данного руководства, поэтому знания Perl не требуется.
Системные требования
Вам потребуется:
- Web-сервер, на котором могут выполняться любые Web-сайты, а также сценарии Common Gateway Interface (CGI), написанные на Perl. Это может быть тот же сервер, что и сервер содержимого, а также абсолютно другой сервер.
- Наклейки используют JavaScript, поэтому я не могу гарантировать, что код руководства будет работать в любом браузере. Можно сказать так: я знаю, что код работает в последних версиях Firefox и Mozilla.
- Исходный код для системы Stickies, содержащийся в файле stickies-src.zip (см. раздел "Загрузка").
Конфигурирование Firefox для использования примера кода
По умолчанию Firefox запрещает междоменные XMLHttp-запросы. Чтобы код работал в клиенте Firefox (Windows) и на сервере Apache (Linux), необходимо:
- Перенастроить about:config с false на true:
signed.applets.codebase_principal_support
|
- В JavaScript-коде запросить права, чтобы обойти защиту. Добавьте следующий код в начало функции xmlRequest:
try {
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
} catch (e) {
alert("Permission UniversalBrowserRead denied.");
}
|
- И, конечно же, разрешить Apache выполнение сценария persistence.cgi (см. раздел "Ресурсы", чтобы получить информацию о параметре ExecCGI в документации по Apache, а также о применении about:config для настройки Firefox на использование программы Stickies).
Благодарность: Спасибо читателю Ларсу Кермоуду, предоставившему приведенную выше информацию по использованию программы Stickies в Firefox.
|  |