AJAX-безопасный способ постобработки / «обертывания» произвольных веб-страниц? - PullRequest
0 голосов
/ 19 июня 2009

Я управляю системой для академических программных проектов, которая, как и другие вещи, позволяет проектам предоставлять веб-страницы, интегрированные с экземпляром браузера ошибок Trac / wiki / source browser. Идея состоит в том, что пользователи могут свободно создавать свои главные страницы так, как им нравится (им это действительно нравится), но с некоторыми удобными / фирменными функциями, такими как общие элементы навигации, и (ненавязчивой) панелью ссылок в верхней части для обратной ссылки на главная страница и другие размещенные проекты. Если не сказать лучшего слова, я использую «обтекание», чтобы описать вставку элементов nav и панели ссылок в документы. Я знаю, я знаю: перегруженная терминология. Извините, если вы ожидали получить ответ о возврате каретки;)

В течение нескольких лет эта система довольно хорошо работала с «оберткой», реализованной пользовательским Apache 2 OutputFilter для text / html: когда поток HTML покидает сервер, я анализирую входной HTML в DOM, нормализую немного при необходимости, а затем вставьте соответствующие дополнительные элементы. Немного неряшливо, но лучший способ, который я мог найти, и до сих пор он работал хорошо. Однако теперь я хочу обновить систему Trac до 0.11, в которой для аккуратного рендеринга деревьев каталогов без перезагрузки используется некоторый аккуратный AJAX: в результате поток HTML AJAX также модифицируется Apache фильтр, так что каждый раз, когда я открываю каталог, добавляются новые «верхние панели» и навигационная мебель. Очевидно, это довольно отстойно, и я бы предпочел, чтобы мои пользователи могли также использовать AJAX, если захотят, вместо того, чтобы взламывать специфичную для Trac систему «игнорировать запросы HTTP dir browsing».

Я хочу знать, есть ли у кого-нибудь лучший способ применить такую ​​постобработку к веб-страницам ... в частности, способы, которые по сути будут немного лучше играть с AJAX, не ограничивая свободу моих пользователей делать то, что они хотят со своими страницами. Спасибо!

Ответы [ 2 ]

0 голосов
/ 19 июня 2009

Какой язык вы используете?

Вам будет тяжело делать это с DOM, так как он легко меняется ..

Смею это сказать .. Попробуйте вместо этого использовать регулярные выражения.

0 голосов
/ 19 июня 2009

когда поток HTML покидает сервер, я анализирую входной HTML в DOM, при необходимости немного нормализую дерево, а затем вставляю соответствующие дополнительные элементы.

Я не знаком с этой техникой, поэтому я должен спросить, что именно делает анализ? Язык или это набор правил или что? Если это язык, вы можете проверить заголовки запроса, а если это AJAX-запрос, вы можете просто вернуть поток как есть, вместо добавления навигации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...