Pull to refresh

Comments 10

Боже, мои глаза…

На больших страницах (примерно 60 кб текста) скрипт зависает на пару минут. Все функции измерил таймерами — отрабатывают быстро (в пределах 300 мс в IE, 100 мс в Chrome). Если кто-то сможет подсказать причину — буду очень признателен.


Надо смотреть профилирование, а не таймеры.
И надо оптимизировать код, очень много что можно закэшировать, очень много что можно просто ускорить. Отказаться от jquery тоже хорошо поможет.

А вообще я в принципе удивлен, что оно работает толком: нормальный поиск делается не так. Для клиента, например, можно взять Lunr

Для применения и снятия выделения наиболее эффективно будет использовать ContentEditable, а не тупую замену регуляркой.

jQuery(this).html().replace(new RegExp(term, 'ig'), '<span class="highlight">$&</span>')

Вот это вообще страшно, тут при должных навыках можно даже инъекции сделать. Особенно вкупе с прямой ссылкой
Пардон. О каких инъекциях идет речь?
извиняюсь, был напуган. Там прямое переписывание html идет.
Вообще показалось, что XSS возможен. На деле возможно вроде только сломать верстку, начав вводить <, например.
Зависон на 2 минуты при 60 килобайтах — это мрак, конечно.
Да даже 5-10 секунд были бы совершенно недопустимы — юзер гарантированно уйдет!
Зачем?
Я понимаю если бы решение было лучше стандартного поиска, или было что то новенькое (нестандартный подход), любой кто знает более менее js+jquery, реализует что то подобное, без особых затруднений
Вообще не понял проблему. Стандартный поиск ищет замечательно, подсвечивает, у него есть стрелки «вверх-вниз». В чем его проблема?

Единственное — поиск по регулярке. Но для этого есть плагины, да и нужно это раз в десять лет.
Автор сразу описал проблему:
Многие посетители сайтов не знают о поиске по странице по нажатию Ctrl+F и ищут необходимый фрагмент глазами, просто пролистывая текст.

Другое дело, какой смысл в таком решении? Возможно, лучше было бы разместить заметную панельку с описанием того, как воспользоваться браузерным поиском по странице (ведь у всех он одинаково открывается), с возможностью ее закрытия. Заодно была бы польза для интернет сообщества — больше пользователей узнали бы о такой возможности…
Мне кажется, что встраивать свой, альтернативный поиск, вместо встроенного в браузер, мягко говоря, плохой метод. Гораздо правильнее учить пользователей. А то такими темпами появится вторая кнопка «назад», «пуск» и так далее.
Для информации. Существует не стандартизованный метод «find» у window, который является интерфейсом к самому настоящему браузерному поиску. Возможно, в зависимости от необходимого набора браузеров, этого было бы вполне достаточно.

jsfiddle.net/MRp2G/5
Sign up to leave a comment.

Articles