10 Essentiële principes van de Javascript-master

JavaScript is een van de meest gebruikte talen in webontwikkeling. Het is eenvoudig, maar toch erg krachtig en het aantal manieren waarop het kan worden gebruikt, is bijna onbeperkt. Daarom is het zo belangrijk om advies in te winnen van degenen die je zijn voorgegaan. Hier volgen 10 tips van gerespecteerde webontwikkelaars binnen de JavaScript-community.

1. Denk niet aan binding - Christophe Porteneuve

Christophe Porteneuve heeft serieuze ontwerpen voor karbonades. Hij is websites aan het ontwikkelen sinds 1995, heeft de afdeling software engineering van een groot IT-college geleid en is nu de CTO van Ciblio.net. Hij is zo goed in wat hij doet dat het team van A List Apart hem wat schermvastgoed heeft gegeven om enkele van zijn inzichten te delen.

Christophe raakt een zeer belangrijk facet van javascript: Bindingen.

Bijna geen grote objectgeoriënteerde programmeer (OOP) talen dwingen je om binding te overwegen. Dat wil zeggen, ze vereisen niet dat je de toegang tot de leden van het huidige object expliciet kwalificeert (methoden en eigenschappen) met een referentie zoals deze of zelf. Als u een methode voor een bepaald object aanroept, roept u deze meestal op het huidige object. Hetzelfde geldt als u een methode doorgeeft voor een latere aanroep: deze behoudt zijn huidige object. Kortom, voor de meeste OOP-talen is binding bindend.

Christophe gaat verder met voorbeelden van juiste binding en hoe binding gevoelige patronen te herkennen. Hier zijn vier afhaalpunten in Christophe's artikel:

  • Elke lidmaatschapstoegang moet worden gekwalificeerd met het object waar het betrekking op heeft, zelfs wanneer het dat is deze.
  • Elke soort functie-verwijzing (toewijzen als een waarde, doorgeven als een argument) verliest de oorspronkelijke binding van de functie.
  • JavaScript biedt twee equivalente manieren om expliciet de binding van een functie aan te geven bij het aanroepen ervan: van toepassing zijn en telefoontje.
  • Het creëren van een 'Äúbound method reference'Äù vereist een anonieme wrapper-functie en een belkosten. In specifieke situaties kan het gebruik van sluitingen een beter alternatief zijn.

2. Gebruik JavaScript-bibliotheken in plaats van Flash of andere animatie - Dave Shea

Dave Shea is een gerespecteerde webontwikkelaar en -ontwerper, waarschijnlijk het best bekend voor zijn uitstekende werk met CSS Zen. Dave heeft een ongelooflijke capaciteit getoond voor het ontwerpen van uitzonderlijke gebruikersinterfaces en is een andere schrijver voor de uitstekende A List Apart.

JavaScript-bibliotheken zijn als een Zwitsers zakmes voor de webontwikkelaar. Er zijn talloze smaken van JavaScript-bibliotheken om uit te kiezen en het aantal ontwikkelaars dat plug-ins ontwikkelt voor deze bibliotheken groeit dagelijks. U kunt JavaScript-bibliotheken gebruiken voor vrijwel elke functionaliteit.

Neem bijvoorbeeld CSS-sprites. In plaats van zware flash-layouts te gebruiken om een ​​rollover-effect te bereiken, gelooft Dave Shea dat je kleine JavaScript-bibliotheken zoals jQuery zou moeten gebruiken om dezelfde functionaliteit te gebruiken. Dave somt enkele van de voordelen op van het gebruik van JavaScript-bibliotheken, vooral die welke door Google worden gehost.

Omdat veel andere webontwikkelaars een koppeling maken naar de Google-code, bestaat de kans dat het JavaScript al in de cache van de browser staat. Door JavaScript-bibliotheken te gebruiken, kunt u meer tijd besteden aan ontwikkeling en hoeft u minder tijd te besteden aan het schrijven van JavaScript-code.

3. Schrijf JavaScript met micromalplates - John Resig

John Resig is een van de meest populaire JavaScript-ontwikkelaars ter wereld. Hij heeft de razend populaire JavaScript-bibliotheek jQuery gemaakt. Hij heeft een boek geschreven over Pro JavaScript Techniques en deelt zelfs zijn scriptingkennis op zijn persoonlijke blog.

John geeft een nogal unieke methode om de ontwikkelingstijd van JavaScript te versnellen met behulp van micromalplates.

Ik heb een beetje hulpprogramma gehad waar ik al een tijdje mee bezig ben, en ik heb ontdekt dat dit erg nuttig is in mijn inspanningen om JavaScript-programma's te maken. Het is een supereenvoudige template-functie die snel is, snel caches in en gemakkelijk in gebruik is. Ik heb een paar trucjes die ik gebruik om het echt leuk te maken om mee te rotzooien.

Hoewel het gebruik van micromalplaten niet missiekritisch is, kan het het ontwikkelingsproces echt versnellen. Bekijk enkele voorbeelden van John van micro-malplaatjes om een ​​beter beeld te krijgen van de voordelen van de sjabloonfunctie.

4. Bind methoden aan objecten - Ayman Hourieh

Ayman Hourieh is afgestudeerd computerwetenschappen, Google-medewerker en auteur van Django-webontwikkeling. Ayman weet zijn weg met elegante programmering.

In zijn artikel met negen JavaScript-tips, raakt Ayman een iets geavanceerder aspect van bindende methoden aan objecten aan.

Iedereen die met JavaScript-gebeurtenissen werkt, is mogelijk een situatie tegengekomen waarbij ze de methode van een object aan een gebeurtenishandler moet toewijzen. Het probleem hier is dat gebeurtenishandlers worden aangeroepen in de context van hun HTML-element, zelfs als ze oorspronkelijk aan een ander object waren gebonden. Om dit te verhelpen, gebruik ik een functie die een methode aan een object bindt; het heeft een object en een methode nodig en retourneert een functie die de methode altijd in de context van dat object oproept.

Door Prototype en een kleine aangepaste code te gebruiken, biedt Ayman een goede tip voor bindende methoden aan objecten. Een kleine, eenvoudige en efficiënte truc.

5. Vertrouw op delegatie van evenementen - Andrew Tetlaw

Andrew Tetlaw is websites aan het ontwikkelen sinds 1997 en is de technische editor voor SitePoint. SitePoint huurde niet zomaar een slordige om hun technische editor te worden. Het schrijven van Andrew op SitePoint is daarvan het bewijs.

Het gebruik van JavaScript-interactiviteit in uw lay-outs kan een ontmoedigende taak zijn. Maar Andrew heeft laten zien dat het gebruik van delegatie van evenementen niet alleen gemakkelijker is dan je zou denken, maar ook veel voordelen biedt, zoals het elimineren van geheugenlekken.

JavaScript-evenementen vormen de basis van alle interactiviteit op webpagina's (ik bedoel serieuze interactiviteit, niet die doffe CSS vervolgkeuzemenu's). In de traditionele gebeurtenisafhandeling voegt u gebeurtenisbeheerders toe of verwijdert u deze uit elk element als dat nodig is. Event handlers kunnen echter geheugenbeschadiging en prestatievermindering veroorzaken. Hoe meer u hebt, hoe groter het risico. JavaScript-evenementdelegatie is een eenvoudige techniek waarmee u een enkele gebeurtenishandler aan een bovenliggend element toevoegt om te voorkomen dat u gebeurtenishandlers aan meerdere onderliggende elementen moet toevoegen.

Veel van de grote JavaScript-bibliotheken hebben voorbeelden van gebeurtenisdelegatie, dus u hoeft niet uw eigen aangepaste script te schrijven.

  • jQuery
  • prototype
  • YUI

6. Weet wanneer je afvaardiging van evenementen moet gebruiken - Chris Heilmann

Chris Heilmann is een internationale ontwikkelingsevangelist die werkt voor het Yahoo Developer Network. Chris heeft een aantal JavaScript-karbonades en je kunt veel live-presentaties bekijken op zijn persoonlijke website.

Chris heeft een uitstekende zelfstudie ontwikkeld die de verschillen tussen de gebeurtenisoverdracht en de afhandeling van gebeurtenissen laat zien.

Het verschil tussen beide is dat het voorbeeld 'Handlers' nogal traag is wanneer de lijst erg groot is, terwijl het voorbeeld 'Delegatie' zo veel als je wilt kunt uitbreiden zonder meer overhead toe te voegen. Het laatste voorbeeld is ook een stuk gemakkelijker te veranderen.

Event Delegation is beter geschikt voor grotere toepassingen, terwijl Event Handling veel meer geschikt is voor kleine projecten.

Voor echt kleine acties voor het afhandelen van evenementen biedt de klassieke oplossing u meer controle en is het vrij eenvoudig om zonder veel uitleg over te dragen aan andere ontwikkelaars. Gebeurtenisafgifte is echter waarschijnlijk de enige manier om een ​​grote app met veel elementen te behouden om verwerking aan (of dynamisch geladen elementen) onder controle te houden.

7. Maak AJAX-reacties cachbaar - YUI-team

Als er ooit een team van "JavaScript-masters" was, dan is de Yahoo! Ontwikkelaarsnetwerk is het misschien. De Yahoo! Ontwikkelaarsteam heeft een aantal ongelooflijke voordelen aan de ontwikkelingsgemeenschap geleverd. Ze bevatten uitgebreide artikelen en tips van hun eigen ontwikkelaars, dus we kunnen er zeker van zijn dat elk stukje kennis dat ze delen voldoet aan een zeer hoge standaard.

Ajax kan een geweldig hulpmiddel zijn om een ​​veel rijkere gebruikerservaring te bieden aan een website. Het is echter een wisselwerking met het gebruik van Ajax dat het soms langzamer laadt dan een traditionele website. Het Yahoo-ontwikkelteam heeft een aantal tips ontwikkeld voor het werken met JavaScript en Ajax, met name met het cachen van Ajax, zodat de reactietijden veel sneller zijn.

In veel toepassingen hangt het al dan niet wachten van de gebruiker af van hoe Ajax wordt gebruikt. In een webgebaseerde e-mailclient zal de gebruiker bijvoorbeeld wachten op de resultaten van een Ajax-verzoek om alle e-mailberichten te vinden die overeenkomen met hun zoekcriteria. Het is belangrijk om te onthouden dat "asynchrone" niet betekent "onmiddellijk".

Om de prestaties te verbeteren, is het belangrijk om deze Ajax-reacties te optimaliseren. De belangrijkste manier om de prestaties van Ajax te verbeteren is om de antwoorden cacheable te maken ...

Caching Ajax-oproepen met methoden zoals het toevoegen van een verloop- of een cachebesturingskop kunnen de reactietijden van de toepassing enorm versnellen.

8. Zet scripts onderaan de pagina - YUI

Het is geen verrassing dat het YUI-team deze lijst twee keer gaat maken, met hun uitgebreide kennisbank van JavaScript-tips.

Een eenvoudig maar toch belangrijk aspect van het ontwikkelen met JavaScript dat veel ontwikkelaars over het hoofd zien, is het toevoegen van JavaScript aan de onderkant van de pagina, in tegenstelling tot de top. Door JavaScript aan de bovenkant van de pagina toe te voegen blokkeert u parallelle downloads van andere elementen op de pagina, zoals afbeeldingen.

Het is niet altijd het beste idee om onderaan JavaScript JavaScript-elementen toe te voegen, maar dit is vaak het geval en uw prestaties zullen hierdoor toenemen.

9. Gebruik de Eval-constructor niet - Julien Lecomte

Julien Lecomte is alweer een Yahoo! Developer Network-medewerker. Hij is een zeer bekwaam man als het aankomt op het optimaliseren van JavaScript-code, aangezien hij de auteur is van de YUI-compressor en de YUI History Manager.

In een lezing van Julien geeft hij uitstekend advies over JavaScript-optimalisatie. Tijdens de presentatie stelt Julien dat JavaScript-programmeurs zo ver mogelijk bij de constructeur van Eval vandaan moeten blijven. Op dia 19 van de speech ziet u zijn beweegredenen.

  • De string die wordt doorgegeven aan Eval (en zijn verwanten, de functie Constructor en de functies setTimeout en setInterval) moet worden gecompileerd en geïnterpreteerd. Zeer traag!
  • Nooit een string doorgeven aan de setTimeout en setInterval-functies. Geef in plaats daarvan een anonieme functie door.
  • Gebruik nooit Eval en de constructor Function (behalve in uiterst zeldzame gevallen en alleen in codeblokken waar de prestaties niet van kritiek belang zijn).

10. Assignment versus gelijkheidsoperators - Peter-Paul Koch

Peter-Paul Koch is een populaire Apple internetontwikkelaar die ook de website Quirksmode beheert met een heleboel JavaScript-tips. Peter-Paul heeft ook de ppk op JavaScript geschreven, die allerlei informatie over geweldige JavaScript-ontwikkeling bevat.

PPK heeft betrekking op een groot (en algemeen) misverstand dat nieuwe Java-scriptschrijvers vaak tegenkomen: = of == ?

Een fout die nieuwe JavaScripters vaak maken, is de toewijzing en gelijkheidsoperators = en == in de war brengen. Als u twee waarden wilt vergelijken, moet u een dubbel gelijkteken gebruiken, omdat dat is hoe JavaScript werkt. Als u per ongeluk een enkel gelijkteken gebruikt, vergelijkt u geen waarden, maar wijst u een waarde toe aan een variabele.

Hoewel het geen wereldschokkend concept of een klein beetje informatie is, is het een handige herinnering die vele uren kan besparen voor de beginnende programmeur.

  • Abonneer u op de NETTUTS RSS-feed voor meer dagelijkse webontwikkeling-tutorials en artikelen.

Glen Stansberry is een webontwikkelaar en blogger die meer worstelt dan hij zou willen toegeven met CSS. Je kunt meer tips over webontwikkeling lezen op zijn blog Web Jackalope.

Als je dit bericht nuttig hebt gevonden, zeg je bedankt met een Digg: