Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12538|Atbildi: 1

[JavaScript] javascrip{filter}t veiktspējas optimizācija

[Kopēt saiti]
Publicēts 04.12.2017 20:23:14 | | |
1. Cieniet objekta īpašumtiesības
 Nepievienojiet atribūtus instancēm vai prototipiem;
 Nepievienojiet metodes instancēm vai prototipiem;
 Nepārdefinējiet jau esošās metodes.
Labākais veids, kā to izdarīt, ir nekad nemodificēt objektus, kas jums nepieder. Objekta īpašnieks nozīmē, ka jūs to izveidojāt, piemēram, pielāgotu tipu vai objekta literālu, ko izveidojāt pats. Masīvi un dokumenti acīmredzot nav jūsu, tie pastāv pirms koda izpildes.
2. Izvairieties no globālajiem mainīgajiem
Izveidojiet globālu mainīgo, ļaujot tajā pastāvēt citiem objektiem un funkcijām. Apskatiet šādus piemērus:
//两个全局量——避免!!
var name = "Nikolajs";
funkcija sayName(){
brīdinājums(vārds);
}
Šis kods satur divus globālus lielumus: mainīgā nosaukumu un funkciju sayName(). Faktiski var izveidot objektu, kas satur abus, kā parādīts šajā piemērā:
//一个全局量——推荐
var MyApplication = {
name: “Nicholas”,
sayName: function(){
brīdinājums(this.name);
}
};
3. Izvairieties no salīdzināšanas ar nulli
 Ja vērtībai jābūt atsauces tipam, izmantojiet operatora instanceof, lai pārbaudītu tā konstruktoru;
 Ja vērtībai jābūt bāzes tipam, izmantojiet typeof, lai pārbaudītu tās tipu;
 Ja vēlaties, lai objektā būtu noteikts metodes nosaukums, izmantojiet operatora tipu, lai pārliecinātos, ka metode ar norādīto nosaukumu pastāv objektā.
(Šeit es iesaku savu tīmekļa priekšgala mācību un apmaiņas grupu: 675498134, neatkarīgi no tā, vai esat iesācējs vai dievs, es aicinu jūs nākt un mācīties un sazināties, un laiku pa laikam dalīties ar sausām precēm, ieskaitot jaunākos priekšgala materiālus un apmācības, kuras esmu apkopojis pats, lai sniegtu jums, un ir tehniskie eksperti, kas katru dienu izskaidro priekšgala zināšanas. Iesācēji un pieredzējuši draugi ir laipni aicināti mācīties un sazināties kopā un gūt progresu kopā. )
4. Izmantojiet konstantes
Lai gan Javascrip{filter}t nav formāla konstantu jēdziena, tas ir noderīgi. Šī ideja par datu atdalīšanu no lietojumprogrammu loģikas var mainīt datus, neriskējot ar kļūdām. Apskatiet šādus piemērus:
var Konstantes = {
INVALID_VALUE_MSG: "Nederīga vērtība!",
INVALID_VALUE_URL: "/kļūdas/invalid.php"
};
funkcija validate(vērtība){
if (!value){
brīdinājums(Constants.INVALID_VALUE_MSG);
locatio{filter}n.href = Constants.INVALID_VALUE_URL;
}
}
5. Izvairieties no globālās meklēšanas
Iespējams, vissvarīgākais, lai optimizētu skriptu veiktspēju, ir pievērst uzmanību globālajiem meklējumiem. Globālo mainīgo un funkciju izmantošana noteikti ir dārgāka nekā lokāla, jo tā ietver meklēšanu tvēruma ķēdē. Apskatiet šādu funkciju:
funkcija updateUI(){
var imgs = document.getElementsByTagName("img");
for (var i=0, len=imgs.length; Es < Lens; i++){
imgs[i].title = document.title + " attēls " + i;
}
var msg = document.getElementById("msg");
msg.innerHTML = "Atjaunināšana pabeigta.";
}
Funkcija var izskatīties pilnīgi labi, bet tajā ir trīs atsauces uz globālo dokumenta objektu. Ja lapā ir vairāki attēli, dokumenta atsauce for cilpā tiks izpildīta vairākas reizes vai pat simtiem reižu, katru reizi, kad tiks veikta tvēruma ķēdes meklēšana. Izveidojot lokālo mainīgo, kas norāda uz dokumenta objektu, var uzlabot šīs funkcijas veiktspēju, vienreiz ierobežojot globālo uzmeklēšanu:
funkcija updateUI(){
var doc = dokuments;
var imgs = doc.getElementsByTagName("img");
for (var i=0, len=imgs.length; Es < Lens; i++){
imgs[i].title = doc.title + " attēls " + i;
}
var msg = doc.getElementById("msg");
msg.innerHTML = "Atjaunināšana pabeigta.";
Šeit vispirms ievietojiet dokumenta objektu vietējā doc mainīgajā; Pēc tam nomainiet oriģinālo dokumentu ar pārējo kodu. Salīdzinot ar sākotnējo versiju, pašreizējai funkcijai ir tikai viena globālā meklēšana, kas noteikti ir ātrāka.
6. Citi piesardzības pasākumi attiecībā uz veiktspēju
 Vietējās metodes ir ātrākas - kad vien iespējams, izmantojiet vietējo metodi, nevis pārrakstiet to pats, izmantojot Javascrip{filter}t. Vietējā metode ir rakstīta kompilētā valodā, piemēram, C/C++, tāpēc tā ir daudz ātrāka nekā Javascrip{filter}t. Visvairāk aizmirstā lieta par Javascrip{filter}t ir sarežģītā matemātika, ko var atrast matemātikas objektos; Šīs metodes ir daudz ātrākas nekā jebkura cita metode, kas rakstīta ar Javascrip{filter}t, piemēram, sinuss un kosinuss.
 Slēdžu priekšraksti ir ātrāki — ja jums ir virkne sarežģītu if-else priekšrakstu, varat iegūt ātrāku kodu, pārvēršot tos vienā slēdža priekšrakstā. Varat arī vēl vairāk precizēt slēdža priekšrakstu, sakārtojot pieteikuma paziņojumu secībā no visticamākās līdz vismazāk ticamajai.
 Bitu operatori ir ātrāki — veicot matemātiskās operācijas, bitu operācijas ir ātrākas nekā jebkuras Būla vai aritmētiskās operācijas. Selektīva aritmētisko operāciju aizstāšana ar bitu operācijām var ievērojami uzlabot sarežģītu aprēķinu veiktspēju. Loģiku, piemēram, moduli, loģiku un summas loģiku, var uzskatīt par aizstātu ar bitu operācijām.

Vērtējums

Dalībnieku skaits1MB+1 Veicināt+1 Sakļaut iemesls
QWERTYU + 1 + 1 Atbalstiet īpašnieku, lai ievietotu labu ziņu, un es arī ievietošu labu ziņu!.

Skatīt visus vērtējumus





Iepriekšējo:SQL Server eksportē norādītos datus ar nosacījumiem
Nākamo:Iesācēji spēlē dažas melnās tehnoloģijas CSS
Publicēts 05.12.2017 09:33:13 |
iemācījās            
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com