Mam duże różnice w wydajności w zależności od sposobu wyrażania moich selektorów. Na przykład, spójrz na tych 2 selektorów, które wybrać dokładnie te same elementy:Wydajność selektora jQuery
A) someTableRow.find("td.someColumnClass").find("span.editMode").find("input")
B) someTableRow.find("td.someColumnClass span.editMode input")
spodziewałbym do B), aby być szybciej, ponieważ istnieje tylko 1 połączenie, ale w rzeczywistości jestem znalezieniem) wykonuje wokół 8 razy szybciej. Nie mam pojęcia, dlaczego, ktokolwiek ma jakiś wgląd? Dzięki
Dzięki crescentfresh, ma sens. W rzeczywistości przeszliśmy do wersji 1.3.2 z wersji 1.2.6 i nie wiedziałem, dlaczego niektóre z przyzwoicie szybkich selektorów stały się wolniejsze (większość z nich była szybsza). Pytanie - które jest szybsze, przekazywane w kontekście w każdym punkcie lub przy użyciu połączonych wywołań find()? – JonoW
Są one faktycznie równoważne. $ ('foo', 'bar') faktycznie zostanie przekierowany do $ ('bar'). find ('foo') w brzuchu jQuery. Przypuszczam, że wywołanie funkcji find() jawnie zapisuje kilka cykli procesora, ale nic, o czym można by pomyśleć. Zrób wszystko, co jest najbardziej czytelne dla twojego zespołu. Uważam, że jest bardzo czytelny;) –
Fajnie, czuję, że find() jest dla mnie bardziej intuicyjny, więc użyję tego – JonoW