: hoe kan de test voor beginners en verbetering van de code,,,,,,,,,,,, deel 3,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' niet missen. EN: met de komst van de procedure schriftelijk javascript belachelijk makkelijk.Maar je merkt, op de code van je kleine wijzigingen, de verbetering van de leesbaarheid en /of prestaties aanzienlijk.Hier zijn een aantal technieken, zodat je op je voor de optimalisering van de code en de oprichting van een platform van je, hebben we een solide platform om getest te worden.Dit is de test pagina 's, we lopen alle testen: //europa.eu.int /comm /:, <.Doctype: //europa.eu.int /comm /> < http: //europa.eu.int = "en GB" > < hoofd > < verbetering van de prestaties van de titel > test - Haas /Nettuts+ < /titel > < /Hoofd > < body> < div = "CONTAINER" > < div = "blok" > < P id = "de eerste" > de tekst hier < /P > < - ul - id = "somelist" > < li type = "project" > < /Lee > < li = "optie" = "TAP" > Oh, Hallo, Hallo, hallo.< /Lee > < li = "post" > < /Lee > < li = "post" > < /Lee > < /UL > < /div > < /div > < script src = 'http: //Ajax.. googleapis. COM /Ajax /Lips /JQuery 1.4.2 /. Js "> < /scripts > < script> consoles. Profiel (); /code van ons hier de console. Profileend (); < /scripts > < /body > < /html >, er is niets speciaals, maar een hoop elementen van onze doelstellingen en testen.We gebruiken de pyromaan. Moment.Inleiding van de procedure, te beginnen, profileend, stop het, waardoor de taak van hoeveel tijd de aantekeningen.Ik gebruik altijd een pyromaan in grote lijnen van de methode, maar voor ons niet een legitieme doelstelling, dat is genoeg.,,, 1.Als een van de elementen bestaan, zoals meestal het geval is, zal je een script van documenten, met inbegrip van de code van alle pagina 's van je op je website.Dit is meestal in de pagina 's niet bestaat in de tenuitvoerlegging van de elementen van die code.Hoewel de behandeling van deze kwestie is heel normaal, dat betekent niet dat je kunt negeren, geen probleem.In feite, als u de methode: op een lege verzamelen, ze zal niet vluchten, als een beste praktijk, alleen van toepassing is op de huidige - pagina 's van de code, en zich niet al je code in een enkel document klaar voor de inspectie van en dienstverlening aan de klanten.Laten we in de eerste plaats naar de console. Profiel (); var elementen = dollar ("# somethingthatisnothere"; e) de tekst ("de tekst"). Slideup (300).AddClass ("bewerken"); $("# leidende"); de console. Profileend (); ///////meer verschrikkelijke op grond van de code gebroken, hier. _ vuurvliegjes uit de volgende resultaten:,, deze keer, laten we controleren of in de doen voordat we naar de uitvoering van operationele elementen bestaan.Console. Profiel (); var elementen = dollar ("# somethingthatisnothere"); als (BW [0]) {element. De tekst ("de tekst"). Slideup (300).AddClass ("bewerken");}% ("# leidende"); de console. Profileend () een; ///////een vreselijke grond gebroken, dit is de code. _.Resultaten:,, kijk?Het is heel eenvoudig, tot het punt, en het verkrijgen van werk.Aandacht, alsjeblieft, je hoeft je niet te controleren of er een element in je code in elke plaats.Zie je dat in je pagina 's, een groter deel van zal profiteren van deze methode vaak.Gebruik je verstand, 2.Doeltreffend gebruik van - en gebruik te maken van een id, en niet door middel van een klasse,., dit is een belangrijk onderwerp, ik zal het kort houden.Ten eerste, door middel van trainers, gebruik te maken van een id, en niet door middel van een soort.Dit gebruik van de machine rechtstreeks gebruik, het vinden van een element in de id van een zaak wat de interne hekserij naar de methode voor het verkrijgen van dezelfde oude, ten minste in de browser, laat zien wat je kunt het doel van de tweede, Lee verschillende - elementen.We zullen voor elk getest, en hoe zij de wijziging van eigendom. De eerste methode, de meest eenvoudige, is de keuze voor het gebruik van de,, soort van.Laten we kijken naar de analysator vuurvliegjes.Console. Profiel (); $(","); de console. Profileend (); de 0.308ms,:. De volgende, we voor het etiket de naam te verkleinen.Zo kunnen we ons beperken alleen voor de eerste selectie van documenten van de DOM elementen. Ten opzichte van de console. Profiel ($("); in de selectie"); de console. Profileend (); de resultaten 0.291ms ongeveer 0,02:,, een geschoren.Dit is te verwaarlozen, want het feit dat wij in de browser, testen, maar het moet worden opgemerkt, dat de verbetering van de prestaties van de oude zal aanzienlijk hogere browser, zoals het Internet Explorer 6., is de volgende stap, de identiteit van de vader van onze elementen vallen.Console. Profiel ($(");somelist. Selectie"); de console. Profileend (); de resultaten:,, 0.283ms. Laten we proberen een specifiek punt.We kunnen ook de aangewezen andere voorouders id, gastheer van de aard van de elementen van het profiel (.); $("# somelist Lee. Selectie"); de console. Profileend (); de kleine MS:,,, een klein deel van het scheren.Tot slot, ons doel is het directe gebruik van een id, console. Profiel ($(");leidende"); de console. Profileend (); de resultaten:,, 0.165ms. Indrukwekkend.Dat is hoe je het echt op lokale methoden sneller rennen, terwijl de browser gebruik kunnen maken van de oude als getelementsbyclassname, niet mag leiden tot de prestaties van de browser langzamer.De in de code was, altijd rekening worden gehouden met de vraag, 3.Voor de analyse van en het bereik van de toevoeging van model...... de motor is gebruik te maken van de rekeningen, gebouwd door John toegevoegd analytische - van links naar rechts, die veroorzaakt wordt door een onverwachte link analyse, rekening houdend met de keuze: $("# somelist. Selectie"); deze keuze... En Toen ontmoette, in de eerste plaats een dom - als de wortel, het gebruik van de goederen, de teruggooi, niet in de klas, van elk van de elementen van een controle, klasse, haar moeder heeft een id, somelist, hiermee rekening te houden, om ervoor te zorgen dat de keuze van de meest rechts als Je deel van zo concreet mogelijk zijn.Bijvoorbeeld door de aanwijzing van li.selected, in plaats van,,. De selectie, het je van node is nummer opzoeken.Dit is de reden waarom de prestaties in het vorige hoofdstuk van de oorzaken van springen.Door de toevoeging van een extra vermindering van de beperkingen van het aantal, de knooppunten, met het oog op een betere manier voor "fine - tuning" elementen, moet je elk verzoek om toevoeging van een context.Somelist, var = USD ("# somelist") [0]; $(",", somelist); door de toevoeging van een achtergrond, - de zoektocht compleet veranderen.Nu, de elementen die in de context van de zaak, we somelist, in de eerste plaats vinden, als element van de soort, niet noodzakelijk worden geschrapt., aandacht, door middel van een element van de DOM als je in het algemeen: - de beste praktijken.In de context van de meest nuttige, wanneer het wordt opgeslagen in een variabele.Anders kan je een vereenvoudiging van de procedures, het gebruik van goede (), die zelf, en onder de motorkap.En $("# somelist" ("). Vinden. De geselecteerde), zou ik willen zeggen dat de groei zal duidelijk zijn omschreven, maar ik kan het niet, dat ik de test in een browser of het toepassingsgebied voor de prestaties van klopt, vanille is afhankelijk van een aantal factoren, met inbegrip van de vraag of de specifieke steun voor de browser.,, 4.Om te voorkomen dat de vraag van afval, als je door de mensen die de code, vind je een andere code (euro /dollar). Dosomething (); ///////meer code ($). Dosomethingelse (); ///////meer code ($). Domoreofsomethingelse ();, doe dit alsjeblieft niet.Ooit, ontwikkelaars van de concretisering van deze "overal" is.Dit is verspilling.Laten we kijken hoeveel keer de code nodig voor de exploitatie van deze vreselijke, console. Profiel ($(");leidende"). De huid ($(");leidende") ("hallo". - $(");leidende"). ("Oh, Hey!")En $("# leidende"). De show (); de console. Profileend (); de structuur en, als de code, als hierboven, één voor één, kun je de link, zoals: de console. Profiel ($(");leidende"). De huid (val ("). Hallo" (http: //europa.eu.int). "Oh, Hey!"). show (); de console. Profileend (); de eerste, de banden, de elementen die door de verwerving en voor elke vermindering van de tenuitvoerlegging van de follow - up van die tijd.Anders, een nieuwe. Die gericht zijn op het creëren van elke keer, maar in tegenstelling tot boven de referentie - elementen als deel van je niet tegelijkertijd te zijn dan alle elementen, doen werken, voordat de console. Profiel (); var elem = $("# leidende"); aan de elementen. (); een code ///////elementen. Val ("hallo"); ///////meer code - element.: //europa.eu.int /comm /("Oh, Hey!"); ///////meer code - element. De show (); de console. Profileend (); de resultaten van de,, duidelijk is, zijn of de banden, de vermindering van de uitvoeringstermijn,, 5.De uitvoering van de DOM die meer intelligente, voordat ik een artikel in de niet - traditionele - operatie heeft een klein afweergeschut uit verschillende mensen die voor de verbetering van de prestaties van de door dat werkelijk de moeite waard zijn.We moeten het zelf te testen, om te testen, creëren we 50, Lee, elementen, en zal ze aan de huidige lijst, en ervoor zorgen dat het veel tijd nodig. We zullen kijken naar de normale, een inefficiënte methode.Onze fundamentele element toe te voegen aan de lijst van elke cyclus op de console in profiel,. (); (lijst = $("# somelist"); (VAR i = 0; ik < 50; I + +) (lijst. Aanvullende ("< li > projecten #" + M + "< /Lee >");} console. Profileend (); de, laten we zien hoe het gedaan kan worden?En nu, zullen we het volgen van een ander pad.We zouden eigenlijk nog nodig: //europa.eu.int /comm /reeks variabelen van de eerste, dan alleen een console terug dom.,. Profiel (); (lijst = $("# somelist"); het project "=" var; voor (VAR i = 0; ik < 50; I + +) (project + = "< li > projecten+ M +" < /Lee > "; de lijst van aanvullende (}). (); de console. Profileend;,, zoals verwacht, de tijd die het kost minder duidelijk.,, als je dit Als vervanging voor een mooi, maar niet met behulp van een methode, dan heb je het mis.Als je wil, om verdere stappen te doen, vraag je jezelf af, als je echt behoefte is aan de oprichting van een nieuwe code voor het gebruik van sommige elementen van het voorwerp?Als je document.getelementbyid) als alternatief voor, maar nooit voor het gebruik van de methode, dan heb je het mis.In dat geval kunnen we uit de oorspronkelijke js, console. Profiel (); (lijst = documenten. GetElementById ('somelist "); de VAR - project ="; voor (VAR i = 0; ik < 50; + = I + +) (project "< li > een+ M +" < /Lee > ";} list.innerhtml = projecten; de console. Profileend (advies);,,, je vindt de optimalisering en niet - optimale uitvoering van de code in de tijd is het verschil tussen een deel.Dit is omdat we de test document is zeer klein, kan er geen sprake zijn van een paar knopen.Zodra u begint met het gebruik van een op het niveau van de productie van een knooppunt van duizenden websites, het zal echt toegenomen. En dat in de meeste van de test, ik heb alleen de toegang tot deze elementen.Wanneer begin je op hen uitoefenen van de functie van passende, op de tenuitvoerlegging van de delta zal toenemen., ik weet dat het niet de beste wetenschappelijke methoden voor het testen van prestaties, maar hoeveel die wijzigingen van invloed zijn op de prestaties in het algemeen gevoel, denk ik dat het gepast is, tot slot, is genoeg In je. In verband met de problemen van de webapplicatie, snelheid, de server van de reactie tijd is een grotere rol moeten spelen in de toepassing van de prestaties van de programma 's van je dan de aanpassing van de code zal je.Maar dit is nog steeds een belangrijke informatie, zal je helpen als je het probeert te verhogen van de eigenschappen van zo veel mogelijk zoveel mogelijk uit de code van jou, dat is alles. En de mensen, we doen het.Een paar punten in gedachten te houden als je wilt en je code; dit is niet alles van de lijst kan aanpassen, natuurlijk, en zeker niet in alle gevallen van toepassing.Hoe dan ook, ik zal jullie in de gaten opmerkingen, let op je woorden in het onderwerp.Je ziet hier de verkeerde?Gooi me de volgende lijn, problemen?Mooie dingen zeggen?De kritiek?Sloeg de opmerkingen, wil ik een opmerking maken.Gelukkig code.,
Hoe kan dit te testen en de verbetering van hun code
Previous:Een snelle Hint: vanaf nul beginnen