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

perl-модуль для веб-сервера. Как и в любом интерпретирующем языке, синтаксический анализ и

компиляция исходного кода только один раз, а не многократно построчно по мере его выполнения,

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

надстройки сервера или CGI или более локально для специальных сегментов кода. Для

нераскаявшийся хакер, функция eval() позволяет (с некоторыми оговорками) построить

весь цикл поиска как единую строку, а затем оценить ее только один раз — в других

словами, предварительно скомпилируйте его во время выполнения как мини-программу в текущем скрипте. Это

не так, как использование функции обычно описывается в книгах, но не позволяйте этому останавливаться

вы от экспериментов.

Для вики с очень большим содержимым даже сильно оптимизированное «первое вхождение»

модель в конечном итоге станет слишком медленной для комфорта. Поэтому в какой-то момент вы

следует рассмотреть другие решения, такие как

• Косвенный поиск через индексный файл, который периодически обновляется

обработка созданных и измененных страниц

• Использование внешней поисковой системы, если вы можете это разрешить, или

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

В любом случае трудоемкая часть просмотра содержимого страницы ограничена.

только к файлам подкачки, измененным позже последнего процесса обновления индекса, или к указанным

раз. Наибольшие временные затраты будут связаны с первоначальным созданием индекса. Как правило, только

между обновлениями изменяется очень небольшая часть базы данных, поэтому периодические обновления

должно занимать мало времени.


ВЗЛОМ ВАШЕГО ИСТОЧНИКА WIKI

201

Обслуживание текста с HTML-тегами

Обслуживание содержимого, уже помеченного HTML, охватывает две области:

• Разрешение редактирования тегов HTML в исходном тексте страницы.

• Включение отдельных HTML-файлов (загружаемых пользователями) в вики.

база данных — в отличие от ссылок на «безопасные» статические страницы.

По ряду причин авторы считают оба варианта неразумными и потенциально небезопасными.