ugrás a tartalomhoz

jQuery -> JavaScript

rollinx · 2015. Aug. 5. (Sze), 16.07
Sziasztok!

Segítségeteket szeretném kérni, egy olyan programozó megtalálásában, aki a fenti témában tud nekem segíteni.
Jelenleg szinte az összes js kód az oldalamon jQueryvel működik, amit nélküle szeretnék megoldani. Vagyis a jQuerys kódokat sima js-re szeretném fordíttatni...

Egy példa, ami mutatja a scriptek "komolyságát":
function ScrollTopClass(){
    this.init = function(){
        var offset = 120,
            duration = 500,
            $el = $(".scrollTop");
        $(window).scroll(function() {
            $el.toggleClass("show", $(this).scrollTop() > offset);
        });

        $el.click(function(e) {
            e.preventDefault();
            $("html, body").animate({scrollTop: 0}, duration);
            return false;
        });
    };
}
Köszi szépen!
 
1

Mennyit fizetsz?

Hidvégi Gábor · 2015. Aug. 5. (Sze), 16.09
Mennyit fizetsz?
2

Privátban a részletek

rollinx · 2015. Aug. 5. (Sze), 16.34
Privátban a részletek
3

Munka

Hidvégi Gábor · 2015. Aug. 5. (Sze), 16.47
Csak arra szerettem volna utalni, hogy ezt inkább a Munka és állás rovatba kellett volna küldeni.
4

Kiegészítés

rollinx · 2015. Aug. 11. (K), 09.20
Köszönöm az utalást, feltettem oda is.

Kérek mindenkit, hogy csak olyan keressen aki komolyan gondolja a dolgot, meg tudja csinálni és el is tudja vállalni a feladatot.
Belefutottam 3 alkalommal is rövid időn belül olyan levélváltásokba, amiknek a végén kiderült, hogy mégsem csinálja meg...

Légyszi, ne húzzuk egymás idejét.
Köszönöm!
5

Kíváncsi vagyok,

zzrek · 2015. Aug. 11. (K), 21.35
Kíváncsi vagyok, hogy mi a motiváció, miért akarod a jQueryt lecserélni. Lassú? Nagy? Kényelmetlen? Egyéb indok? Nem vallásvitába akarok kezdeni, pusztán furcsállom a dolgot, kíváncsi vagyok az indokokra.
6

Ebben a sorrendben, ahogy

rollinx · 2015. Aug. 17. (H), 17.28
Ebben a sorrendben, ahogy írtad.

Lassú, nagy, mert kb. 94k amit pluszban letölt a felhasználó. Kényelmetlen, mert míg nem töltődik be és amihez kellene az oldal tetején van, akkor akadályozza a böngésző renderelését.
És tudom, van cache, stb, de nem érdekel. Az első látogatóról van szó. Neki (is) villámgyors DOM betöltés, renderelés kell.
7

Gzippelve 40k, csak ennyit

bamegakapa · 2015. Aug. 17. (H), 18.04
Gzippelve 40k, csak ennyit kell letölteni. Egy szerverbeállítás kell hozzá. Arról nem is beszélve, hogy készíthetsz saját buildet is belőle, amiből kihagyhatod mondjuk az ajax modult, ha nincs rá szükséged, stb.

Ennek ellenére engedtessék meg a gyanú, hogy nem a jQuery lesz a fő problémátok, még akkor se, ha tegyük fel, 94k lenne. Persze ezt csak így látatlanban, vállalva a megkövezés esélyét, ha mégse lenne igazam.
8

Esetleg

zzrek · 2015. Aug. 17. (H), 20.08
Esetleg pusztán a kezdőoldalról hagyd ki a jquerys cuccokat, és amíg a felhasználó kattint valamire, hívd be aszinkron módon a háttérben. Egyébként csatlakozom az előttem szólóhoz: ki kell gyomlálni a jqueryből ami nem kell, az egyszerűbb és "szabványosabb" is marad az oldal.
9

Ha ennyire szkript-függő az

bamegakapa · 2015. Aug. 17. (H), 23.01
Ha ennyire szkript-függő az oldal, hogy a betöltéshez ily fontos a jQuery, akkor az a 40k nem is egy nagy ár. Főleg, ha még vágsz a jQuery-ből. Elég sok olyan dolgot elfed, amit amúgy is megírnál, csak valószínűleg rosszabb minőségben.

Sok lassú oldalt láttam, és azt kell mondjam, legtöbbször nem a jQuery maga volt a baj, hanem ahogy használták. Mágikus függvényei a DOM és a Javascript világában kevésbé edzett kezekben váratlan eredményeket produkálhatnak.

Még annyit: természetesen ha kimértetek mindent pontosan, és az jött ki, hogy tényleg az a szűk keresztmetszet, hogy lassan jön le a jQuery, akkor bocsánatot kérek. Ez esetben talán egy később jövőnek még hasznosak lehetnek az írásaim.

(igazából nem erre válasz, de most már mindegy)
10

Látom nem értitek. :) Kicsit

rollinx · 2015. Aug. 18. (K), 13.19
Látom nem értitek. :)

Kicsit bővebben: valóban, "csak" 40k vagy még kevesebb, DE 1 szál a böngészőnek tuti, ez tény. A lényeg, ha az oldal legtetején van egy script, addig a böngésző nem tud semmit csinálni, ja deee, váár, míg nem töltődik be a jquery és értelmezni tudja. Addig a felhasználó sajnos a nagy semmit nézi.

És igazad van, már nem a jquery a szűk keresztmetszet, mert már nincs. :))

Tisztázzuk a sebesség kérdést. Chrome-al tesztelve network 2G(250Kbps) sebességre állítva nekem az az oldal lassú, melynek a DOMContentLoaded 15s felett van. Csak úgy mellékesen a 301-es átirányítások is felzabálnak 0,3s-ot.

Én nem vitatom, hogy a jquery rossz dolog, nagyon sok esetben valóban jó, de itt nekem nem kellett és erre kerestem megoldást. Minden esetben mérlegelni kell...

Jó tesztelést!
11

Ezek szerint a head-ben

bamegakapa · 2015. Aug. 18. (K), 14.03
Ezek szerint a head-ben töltöttétek be a jQuery-t. Nem látom sok értelmét, mivel elsősorban a DOM kezelésére szolgál, abból pedig ekkor nincs meg szinte semmi. De bizonyára tudjátok, miért így volt, nem kötekedni akarok.

A jQuery lehet jó, lehet rossz, mérlegelni kell, itt csak általánosságokat írtunk, mivel nem ismerjük a részleteket.
12

Async

Poetro · 2015. Aug. 18. (K), 14.28
Ha a jQuery betöltődése a lényeg, akkor pakold az összes scriptedet egy fájlba, és töltsd be az oldal alján async attribútummal. Ekkor a böngésző nem fog várni a kód megérkezésére, azaz a DOMContentLoaded hamarabb bekövetkezik, és a felhasználó sem a jQuery miatt fog üres oldalt bámulni.
13

Csere

Hidvégi Gábor · 2015. Aug. 20. (Cs), 18.27
Ezer érv szólhat a csere mellett. A jQuery egy általános rutinkönyvtár, amivel nagyon gyorsan lehet prototípust készíteni, de amint fontos lesz a méret vagy a sebesség, érdemes megfontolni a natív függvények használatát.

Az egy dolog, hogy a jQuery tömörítve 40k-ba bepaszírozható, de ígyis-úgyis majdnem 100k-nyi kódot kell értelmezni (1.11-es verzió), valamint az objektumai és függvényei elfoglalnak nagyjából négy megabájt memóriát úgy, hogy még nem is csináltunk semmit. Ez addig nem hangzik túl soknak, amíg meg nem nézzük egy átlag telefon vagy akár egy iPhone erőforrásait, az utóbbiban van egy gigabájt memória, amiből az operációs rendszer 2-300, egy pedig böngésző 50-100-at megeszik, ha mellette futtatunk pár alkalmazást, pár megabájt is számít.

A jQuery erőssége az elemválasztó, de kis gondolkodással nélkülözhető, az animációkat manapság már könnyebb CSS-ből megoldani. Így egy egyszerűbb oldal scriptjei egy saját AJAX megoldással, saját eseménykezelővel 10-15k-ból (tömörítve 3k) kijönnek.
14

Zepto?

tlof · 2015. Aug. 26. (Sze), 21.50
http://zeptojs.com/ A jelentős részét tudja annak amit a jquery, 9.1 kbyte.
15

Kedvelem a Zeptot, de eddig

bamegakapa · 2015. Aug. 26. (Sze), 22.50
Kedvelem a Zeptot, de eddig legfeljebb hobbiprojektjeimben úsztam meg az IE8-9 támogatását. És akkor a hetest még nem is említettem X(.