Я пытаюсь найти окончательный ответ на старый вопрос «Должен ли я использовать имя тега при выборе с классом?»Селекторы класса jQuery: с или без тэга?
Везде, где я смотрю в Интернете для лучших практик jQuery, почти всегда используется точка jQuery («tag.className»); потому что сначала использует getElementByTagName.
Итак, я установил контрольный показатель на jsPerf для проверки. Я использовал исходную разметку на своем веб-сайте, чтобы ее больше проверить в реальном мире и запустить тест во всех современных браузерах, и помимо Chrome и Opera все другие современные браузеры говорят, что jQuery («. ClassName»); на порядок быстрее, хотя это противоречит почти всему, что я читал в книгах и учебниках в Интернете. Я предполагаю, что это быстрее, потому что эти браузеры поддерживают getElementByClassName изначально.
Вот тест:
http://jsperf.com/length-detection
Что вы думаете лучше?
Большое спасибо
Chris
Ваш тест эффективности вводит в заблуждение. В вашем тестовом объекте нет элементов, соответствующих «p.entry-meta», но есть два совпадающих «.entry-meta». Это не честный тест. –
http://jsperf.com/length-detection/2 –
Извините, что моя ошибка изменит его. Не собирался ничего трогать. –