(X)HTML, JavaScript, DHTML, XML, CSS Client scripting tehnologije, Dynamic HTML, Cascading Stylesheets, XML i standardi |
|
Alati teme | Način prikaza |
20. 02. 2007. | #1 |
133t
Master
|
XPath, Firefox i Prototype
Eh, kako se nekad skenjam.
Radim neki projekat, i koristio sam do malo pre prototype.lite.js staru dobrih 6+ meseci I sad imam jednu ogromnu stranicu i njoj 3 poziva tipa: Kôd:
window.onload = function() { elementsA = document.getElementsByClassName('classA'); elementsB = document.getElementsByClassName('classB'); elementsC = document.getElementsByClassName('classC'); Medjutim kako se stranica punila iz CMS-a i kako je struktura strasno komplexna (mnogo fancy efekata, i sto je najgore mnogo ugnjezdjenih elemenata) vremenom je se cela stvar jako usporila, zato sto ova f-ja prolazi kroz sve tagove na stranici, i pomocu regExpa gleda da li taj tag ima tu i tu klasu, znaci u mom slucaju 3x prolazi celu stranicu od pocetka pa do kraja krenem ja tu da googlam, gledam kako da ubrzam stvar, vec sam se pomirio da cu da udarim id="clasaA"+{$i}, pa da kroz tri petlje getujem sve elemente.. i onda slucajno vidim da nova verzija prototype-a ima XPath podrsku... Sad ja znam da to moze samo u FF, eventualno u novoj operi.. al ajde ne budem lenj, zamenim malecki lite.js sa najnovijom full verzijom (74kB), nista drugo nisam menjao, cisto experimenta radi... kad ja tamo, a ono medjutim: ne da radi nego razbija, uopste ne prolazi celu stranicu, vec kupi samo relevantne elemente.. (naravno samo u FF) Eh al sta vredi, u IE cisto mala promena zbog optimizovanije nove verzije. Nema veze, bio sam iskreno srecan dobrih 2-3 minuta vise se uopte i ne nerviram zbog ovakvih stvari.. Skoro da mi je smesno... za 3 godine ce valjda da izbace neki SPXXX koji ce da ima patch za IE i Xpath, to je i onako trivijalna i nevazna stvar... Off Topic: a evo i kako izgleda nova f-ja, jos kad bi Xpath svuda normalno radio, sve posle else bi bio visak... Kôd:
document.getElementsByClassName = function(className, parentElement) { if (Prototype.BrowserFeatures.XPath) { var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]"; return document._getElementsByXPath(q, parentElement); } else { var children = ($(parentElement) || document.body).getElementsByTagName('*'); var elements = [], child; for (var i = 0, length = children.length; i < length; i++) { child = children[i]; if (Element.hasClassName(child, className)) elements.push(Element.extend(child)); } return elements; } }; btw, ne radi spoiler tag.. jel bese radilo to pre na forumu ??? Poslednja izmena od kodi : 20. 02. 2007. u 07:52. |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Prototype, generisanje elemenata forme i Firefox | shoba | (X)HTML, JavaScript, DHTML, XML, CSS | 3 | 03. 05. 2009. 00:44 |
preporuka za knjigu, js/prototype za pocetnike? | [nq] | Opušteno | 2 | 08. 09. 2008. 03:35 |
xml, xpath, php ? | misko_ | Sva početnička pitanja | 1 | 10. 07. 2008. 21:50 |
Globalna promenljiva uz prototype framework | LiquidBrain | (X)HTML, JavaScript, DHTML, XML, CSS | 7 | 23. 08. 2007. 15:24 |
Prototype, dobar tutorijal | Ilija Studen | (X)HTML, JavaScript, DHTML, XML, CSS | 9 | 25. 04. 2006. 18:24 |