Comments 10
Боже, мои глаза…
Надо смотреть профилирование, а не таймеры.
И надо оптимизировать код, очень много что можно закэшировать, очень много что можно просто ускорить. Отказаться от jquery тоже хорошо поможет.
А вообще я в принципе удивлен, что оно работает толком: нормальный поиск делается не так. Для клиента, например, можно взять Lunr
Для применения и снятия выделения наиболее эффективно будет использовать ContentEditable, а не тупую замену регуляркой.
Вот это вообще страшно, тут при должных навыках можно даже инъекции сделать. Особенно вкупе с прямой ссылкой
На больших страницах (примерно 60 кб текста) скрипт зависает на пару минут. Все функции измерил таймерами — отрабатывают быстро (в пределах 300 мс в IE, 100 мс в Chrome). Если кто-то сможет подсказать причину — буду очень признателен.
Надо смотреть профилирование, а не таймеры.
И надо оптимизировать код, очень много что можно закэшировать, очень много что можно просто ускорить. Отказаться от jquery тоже хорошо поможет.
А вообще я в принципе удивлен, что оно работает толком: нормальный поиск делается не так. Для клиента, например, можно взять Lunr
Для применения и снятия выделения наиболее эффективно будет использовать ContentEditable, а не тупую замену регуляркой.
jQuery(this).html().replace(new RegExp(term, 'ig'), '<span class="highlight">$&</span>')
Вот это вообще страшно, тут при должных навыках можно даже инъекции сделать. Особенно вкупе с прямой ссылкой
Зависон на 2 минуты при 60 килобайтах — это мрак, конечно.
Да даже 5-10 секунд были бы совершенно недопустимы — юзер гарантированно уйдет!
Да даже 5-10 секунд были бы совершенно недопустимы — юзер гарантированно уйдет!
Зачем?
Я понимаю если бы решение было лучше стандартного поиска, или было что то новенькое (нестандартный подход), любой кто знает более менее js+jquery, реализует что то подобное, без особых затруднений
Я понимаю если бы решение было лучше стандартного поиска, или было что то новенькое (нестандартный подход), любой кто знает более менее js+jquery, реализует что то подобное, без особых затруднений
Вообще не понял проблему. Стандартный поиск ищет замечательно, подсвечивает, у него есть стрелки «вверх-вниз». В чем его проблема?
Единственное — поиск по регулярке. Но для этого есть плагины, да и нужно это раз в десять лет.
Единственное — поиск по регулярке. Но для этого есть плагины, да и нужно это раз в десять лет.
Автор сразу описал проблему:
Другое дело, какой смысл в таком решении? Возможно, лучше было бы разместить заметную панельку с описанием того, как воспользоваться браузерным поиском по странице (ведь у всех он одинаково открывается), с возможностью ее закрытия. Заодно была бы польза для интернет сообщества — больше пользователей узнали бы о такой возможности…
Многие посетители сайтов не знают о поиске по странице по нажатию Ctrl+F и ищут необходимый фрагмент глазами, просто пролистывая текст.
Другое дело, какой смысл в таком решении? Возможно, лучше было бы разместить заметную панельку с описанием того, как воспользоваться браузерным поиском по странице (ведь у всех он одинаково открывается), с возможностью ее закрытия. Заодно была бы польза для интернет сообщества — больше пользователей узнали бы о такой возможности…
Для информации. Существует не стандартизованный метод «find» у window, который является интерфейсом к самому настоящему браузерному поиску. Возможно, в зависимости от необходимого набора браузеров, этого было бы вполне достаточно.
jsfiddle.net/MRp2G/5
jsfiddle.net/MRp2G/5
Sign up to leave a comment.
Поиск по странице с помощью jQuery