jQuery från scratch eller jQuery UI?

Permalänk
Medlem

jQuery från scratch eller jQuery UI?

Har funderat på om man ska koda sina egna funktioner och händelser från scratch eller om man ska använda sig av jQuery UI. Vad föredrar ni och vad är dess för och nackdelar?

Vi kan ta jQuery Accordion som exempel.

Så här set det ut när jag skapade en egen Accordion från scratch.

JavaScript i head:

<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $(".accordion-content:not(:first)").hide(); $(".accordion-heading a").click(function() { $(".accordion-content").slideUp("fast"); $(this).parent(".accordion-heading").next(".accordion-content").slideDown("normal"); }); }); </script>

HTML i Body:

<div class="accordion-heading"><a href="#">Accordion 1</a></div> <div class="accordion-content">Lorem ipsum dolor sit amet.</div>

Så här ser det ut när jag använder jQuery UI.

JavaScript i head:

<script src="http://code.jquery.com/jquery-1.8.3.js"></script> <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> <script> $(function() { $( "#accordion" ).accordion(); }); </script>

HTML i Body:

<div id="accordion"> <h3>Section 1</h3> <div> <p> Mauris mauris ante, blandit et, ultrices a, suscipit eget, quam. Integer ut neque. Vivamus nisi metus, molestie vel, gravida in, condimentum sit amet, nunc. Nam a nibh. Donec suscipit eros. Nam mi. Proin viverra leo ut odio. Curabitur malesuada. Vestibulum a velit eu ante scelerisque vulputate. </p> </div> </div>

Permalänk
Medlem

Använd det.

Du som utvecklare vill skriva så lite kod som möjligt, har någon annan redan skrivit koden så använd den!

Du behöver ju inte ladda ner hela jQuery UI. Det räcker att du väljer de funktioner du vill ha. http://jqueryui.com/download/

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.

Permalänk

Det beror helt enkelt på vad man skall göra, skall man göra något i samband med exvis. sin accordion som att göra ltie ajaxanrop osv. så är det enklare ifall man skriver sin egna kod.

Sedan att inkludera jQuery.UI-biblioteket bara för att nyttja en enda funktion i sig är helt tokigt med tanke på hur mycket data som slutanvändaren måste ladda hem, bara för en effekt. Men skall man göra något mer som man kan dra nytta av UI-bibliotekets komponenter (exvis kalendrar m.m) så är det såklart motiverat att nyttja färdiskriven & beprövad kod.

Permalänk
Medlem

jQuery UI: plug'n'play, typ. Det går fort, det är enkelt, det är välbeprövat, har oftast "good enough" utseende och eventuella buggar fixas rätt snabbt.

Skriva eget: 100% kontroll, men risken för problem är förstås väldigt mycket högre. Tar oftast längre tid.

Jag brukar personligen använda jQuery UI till sådant som inte kräver någon speciell funktionalitet eller utseende. Vid behov av större modifiering av en jQuery UI-komponent för att få den att fungera som önskat så skriver jag alltid eget istället.

Visa signatur

5950X, 3090

Permalänk
Medlem
Skrivet av firechild:

Det beror helt enkelt på vad man skall göra, skall man göra något i samband med exvis. sin accordion som att göra ltie ajaxanrop osv. så är det enklare ifall man skriver sin egna kod.

Sedan att inkludera jQuery.UI-biblioteket bara för att nyttja en enda funktion i sig är helt tokigt med tanke på hur mycket data som slutanvändaren måste ladda hem, bara för en effekt. Men skall man göra något mer som man kan dra nytta av UI-bibliotekets komponenter (exvis kalendrar m.m) så är det såklart motiverat att nyttja färdiskriven & beprövad kod.

Inte sant. Du väljer innan vilka komponenter som du vill ladda ner, så blir inte så mycket extra data.

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.

Permalänk
Skrivet av Sony?:

Inte sant. Du väljer innan vilka komponenter som du vill ladda ner, så blir inte så mycket extra data.

Förvisso men personligen föredrar jag inkludera jQuery och andra bibliotek från exvis Googles CDN då sannolikheten att slutanvändaren har det redan i sin cache och då är det bättre att inkludera hela paketet då det är det som är mest använt.

Ifall man har möjlighet att välja vad man skall inkludera så skall man inkludera bara det som är nödvändigt.

Ta det här som en tumregel gällandes alla slags bibliotek/moduler/paket: behöver du bara en funktion av trettioelva så skriv en egen variant hellre än att lägga till en samling onödigt krafs. Men självklart skall du bygga din kod på ett framework exvis jQuery, Symfony, EE eller vad man nu trivs bäst med så slipper man uppfinna hjulet på nytt.

Permalänk
Medlem

Nu har jag bättre förståelse. Tackar så mycket för svaren!

Permalänk
Medlem
Skrivet av firechild:

Förvisso men personligen föredrar jag inkludera jQuery och andra bibliotek från exvis Googles CDN då sannolikheten att slutanvändaren har det redan i sin cache och då är det bättre att inkludera hela paketet då det är det som är mest använt.

Ifall man har möjlighet att välja vad man skall inkludera så skall man inkludera bara det som är nödvändigt.

Ta det här som en tumregel gällandes alla slags bibliotek/moduler/paket: behöver du bara en funktion av trettioelva så skriv en egen variant hellre än att lägga till en samling onödigt krafs. Men självklart skall du bygga din kod på ett framework exvis jQuery, Symfony, EE eller vad man nu trivs bäst med så slipper man uppfinna hjulet på nytt.

Sant men om man har ställt in en cache på sin hemsida så behöver användaren ändå bara ladda in dessa 22kb en enda gång. Så spelar inte så stor roll.

Fast om man bara ska ha en sak så går det nog snabbare att skriva den själv än att ladda ner funktionen, packa upp, inkludera, kolla upp dokumentationen hur man använde funktionen, implantera funktionen.

Visa signatur

Programmerare -> PHP | HTML | CSS | JS | Java.