Быстрый алгоритм поиска ключевых слов на HTML-странице с использованием Javascript - PullRequest
1 голос
/ 17 ноября 2010

У меня есть специальный словарь JS, который находит определенные ключевые слова на странице и добавляет к ним пояснительные подсказки. Прямо сейчас я использую RegEx, чтобы найти ключевые слова, но я подозреваю, что это станет медленным очень скоро, когда мой словарь станет больше. Я храню словарные записи в массиве, поэтому думаю, что это тоже можно улучшить. Мой сайт работает на вьетнамском языке, и все мои ключевые слова будут английскими.

Любая идея по улучшению производительности будет высоко ценится. Спасибо.

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

Вы можете обработать свою словарную серверную часть (проверяет вывод по ключевым словам), а затем добавить обработчик для каждого соответствующего элемента (класс или другой элемент html, чтобы определить определение для использования ..).затем используйте javascript для привязки каждого элемента к вашему словарю.Таким образом, ваш сервер выполняет тяжелую работу.

1) Сервер загружает файл словаря и сравнивает его с текстом, который вы собираетесь вывести

2) Если найдено совпадение, добавьте

<span class="definition">yourword</span>

3) Общий обработчик событий javascript (это написано в jQuery, но, конечно, вы можете использовать его как угодно)

$('.definition').mouseOver(function(){
    var keyword = $(this).html();
    //load your definition using the keyword...
})
0 голосов
/ 17 ноября 2010

См. Мой ответ на связанный вопрос: javascript: найдите строки в dom и выделите их

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

Проблема, связанная с выполнением этого с помощью регулярного выражения, заключается не в скорости, поскольку некоторые люди утверждают, что метод синтаксического анализа DOM на самом деле может быть медленнее. Проблема состоит в том, чтобы избежать сумасшедших поворотов, таких как: вы не хотите заменять строку javascript, содержащую ключевое слово, вы не хотите заменять имя класса css или идентификатор, который содержит ключевое слово, и т. Д.

По моему опыту, способ DOM достаточно быстр. Фактически, мой веб-сайт имеет список из более чем 100 ключевых слов, и ему удается установить всплывающие подсказки на все из них менее чем за полсекунды (безусловно, быстрее, чем я вижу).

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