Я нашел другое решение поиска без учета регистра в Google (см. Эрик Фан ), которое немного отличается от того, которое я использовал изначально.
Оригинал:
return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;
EricPhan:
return (a.textContent || a.innerText || "").toLowerCase().indexOf(m[3].toLowerCase())>=0;
Сравнивая их, вы можете видеть, что решение Эрика Фана напрямую обращается к атрибутам DOM и использует toLowerCase()
вместо toUpperCase()
. Последнее на самом деле не имеет значения, но именно то, что действительно улучшило производительность поиска без учета регистра. Просто изменив исходное решение на использование (a.textContent || a.innerText || "")
вместо jQuery(a).text()
, все изменилось!
Теперь мне немного любопытно, поэтому вот следующий вопрос: что за дело с jQuery.text()
? Почему это так медленно? У меня есть свои предположения, но я бы хотел услышать, что скажут эксперты.
Наконец, спасибо всем, кто откликнулся. Я ценю вашу помощь. =)