Вторым соображением является использование некоторого варианта предварительно скомпилированного скрипта или резидентного скрипта.
perl-модуль для веб-сервера. Как и в любом интерпретирующем языке, синтаксический анализ и
компиляция исходного кода только один раз, а не многократно построчно по мере его выполнения,
добивается значительного выигрыша во времени. Это можно применить ко всему сценарию с помощью специальных
надстройки сервера или CGI или более локально для специальных сегментов кода. Для
нераскаявшийся хакер, функция eval() позволяет (с некоторыми оговорками) построить
весь цикл поиска как единую строку, а затем оценить ее только один раз — в других
словами, предварительно скомпилируйте его во время выполнения как мини-программу в текущем скрипте. Это
не так, как использование функции обычно описывается в книгах, но не позволяйте этому останавливаться
вы от экспериментов.
Для вики с очень большим содержимым даже сильно оптимизированное «первое вхождение»
модель в конечном итоге станет слишком медленной для комфорта. Поэтому в какой-то момент вы
следует рассмотреть другие решения, такие как
• Косвенный поиск через индексный файл, который периодически обновляется
обработка созданных и измененных страниц
• Использование внешней поисковой системы, если вы можете это разрешить, или
в качестве альтернативы можно настроить его самостоятельно, если ограничения доступа являются проблемой.
В любом случае трудоемкая часть просмотра содержимого страницы ограничена.
только к файлам подкачки, измененным позже последнего процесса обновления индекса, или к указанным
раз. Наибольшие временные затраты будут связаны с первоначальным созданием индекса. Как правило, только
между обновлениями изменяется очень небольшая часть базы данных, поэтому периодические обновления
должно занимать мало времени.
ВЗЛОМ ВАШЕГО ИСТОЧНИКА WIKI
201
Обслуживание текста с HTML-тегами
Обслуживание содержимого, уже помеченного HTML, охватывает две области:
• Разрешение редактирования тегов HTML в исходном тексте страницы.
• Включение отдельных HTML-файлов (загружаемых пользователями) в вики.
база данных — в отличие от ссылок на «безопасные» статические страницы.
По ряду причин авторы считают оба варианта неразумными и потенциально небезопасными.