Самое горячее: Европа признала соцсети опасными (50); "Фобос-Грунт" уже не спасти (11); Мобильники убивают детей (26); ЕЩЕ >>
РАЗДЕЛЫ
Архив
« июнь 2020  
пн вт ср чт пт сб вс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30          

Как устроен Google Suggest

Анатолий Ализар
| архивная статья | 20.12.2004 18:04

Новая функция «предсказания запросов» Google Suggest — одна из самых удивительных программистских разработок, которые появились на поисковых сайтах в последнее время. Разработчики пытаются разобраться, как работает этот скрипт.

Бета-тестирование Google Suggest началось неделю назад. Вполне возможно, что скоро эта функция будет встроена в основной движок Google.

Google Suggest — это технология автозаполнения строки поискового запроса на основе общей статистики самых популярных запросов. При этом также демонстрируется примерное количество документов, которые соответствуют каждому предполагаемому запросу. Для работы системы необходимо разрешить в браузере выполнение Javascript и прием файлов cookie.

За неделю, прошедшую с момента начала тестирования Google Suggest, независимые разработчики подробно разобрали, как работает этот скрипт. Наиболее полный анализ опубликовал в своем блоге Крис Джастус (Chris Justus).

Оригинальный скрипт Google Suggest сжат, насколько это только возможно (до 11 КБ). Поэтому для анализа нужно первым делом его «расшифровать». В расшифрованном, а тем более в снабженном комментариями виде каждый программист уже может изучить исходный код и получить детальное представление, как он работает.

Как говорит Крис Джастус, это «самая крутая штука, которую я видел с тех пор как обнаружил SOAP-клиент с поддержкой WSDL в браузере Mozilla». Технология предсказания запросов Google Suggest работает в реальном режиме времени. С вводом каждой новой буквы список вариантов обновляется. Скрипт технически восхитителен как минимум по двум причинам:

1. Скорость. Даже при быстрой печати список вариантов поразительно быстро обновляется после каждого нажатия клавиши. А ведь при этом производится запрос к базе данных и какая-никакая сортировка на стороне сервера.

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

После анализа кода скрипта выявляются и другие особенности: отличная поддержка кэша, так что после нажатия Backspace скрипт не посылает новый запрос на сервер, динамическая подстройка скорости обновления в зависимости от пинга на Google. Для работы с «быстрыми пользователями» на плохом коннекте предназначена специальная функция setTimeout, которая при быстрой печати обновляет результаты не после каждого нажатия, а через два или три (при быстрой печати).

Вот другие особенности, которые выяснились после изучения кода скрипта:

1. Автозаполнение можно отключить, если добавить в адресную строку параметр autocomplete="off".

2. Объект XMLHTTP / XMLHttpRequest служит для коммуникации с сервером Google, отправки запросов и получения данных без обновления страницы.

3. Отлично реализовано слежение за нажатиями клавиш и положением курсора мыши.

4. Действительно понятно, как можно выделить текст в строке запроса средствами Javascript.

Выполнение скрипта вызывается из HTML-страницы командой

InstallAC()…

Интересно, что при этом осуществляется проверка:

var Jb="zh-CN|zh-TW|ja|ko|vi|"

То есть система пытается определить пользователей из Японии, Кореи и Китая, что может говорить о поддержке не только английского, но и азиатских языков.

Функция InstallAC вызывает другую функцию (installACPart2), которая проверяет поддержку браузером XMLHttp и создает ресурс «_completeDiv», куда и направляется контент, полученный с сервера.

Полный анализ скрипта Google Suggest можно изучить в блоге Криса Джастуса. Там действительно очень много интересного…

разделы:

Другие

Последние комментарии
об издании | тур по сайту | подписки и RSS | вопросы и ответы | размещение рекламы | наши контакты | алфавитный указатель

Copyright © 2001-2020 «Вебпланета». При перепечатке ссылка на «Вебпланету» обязательна.

хостинг от .masterhost