Izstrāde & sistēmas

Mājaslapas koda un bibliotēku mikrokirurģija - kā samazināt JavaScript apjomu par 65% un uzlabot mobilo ātrumu

Aigars Armanovs Aigars Armanovs
• 19.06.26. • 11 min lasīšana
Kopsavilkums

Lielākā daļa mūsdienu mājaslapu cieš no smagas un neredzamas kaites: JavaScript koda aptaukošanās (JS Bloat). Lai ieviestu vienu vienkāršu attēlu slīdni vai uznirstošo logu, izstrādātāji bieži ielādē masīvas ārējās bibliotēkas (jQuery, Swiper, smagus animāciju ietvarus), kas mobilajos tālruņos rada milzīgu procesora noslodzi un bloķē galveno pavedienu (Main Thread). Rezultātā Google Core Web Vitals metrikas (īpaši Interaction to Next Paint - INP un Total Blocking Time - TBT) iekrāsojas sarkanā zonā, un vietne zaudē līdz 30 procentiem mobilo apmeklētāju. Šajā rakstā veicam padziļinātu koda mikrokirurģijas analīzi: kā soli pa solim aizstāt liekās bibliotēkas ar natīvu Vanilla JS un modernu CSS, samazinot koda svaru par 65% un panākot zibenīgu reakcijas ātrumu.

Profesionāla mājaslapas ātruma optimizācija tiek vērtēta pēc reālas mobilās pieredzes, nevis brīža, kad vadītājs atver vietni jaudīgā biroja datorā ar optisko internetu, viss šķiet perfekti: lapas atveras ātri, elementi gludi kustas, animācijas izskatās iespaidīgi. Taču šis vērtējums ir bīstama ilūzija. Vairāk nekā 75% no visiem reālajiem klientiem mājaslapu apmeklē no vidējas klases viedtālruņiem, stāvot pieturā vai braucot sabiedriskajā transportā ar mainīgu 4G mobilo pārklājumu.

Mobilā telefona procesors nav darbstacija: kad pārlūkam ir jālejupielādē, jāatkodē un jāizpilda 1.5 megabaiti sarežģīta JavaScript koda, ierīce burtiski 'sastingst'. Lietotājs pieskaras izvēlnei vai pogai 'Pieteikties', bet ekrānā nekas nenotiek 400 līdz 800 milisekundes. Šis aiztures laiks iznīcina uzticību vietnei, pārkāpjot fundamentālus ergonomikas standartus, par ko runājām rakstā par Dohertija 400ms sliekšņa ieviešanu.

Kāpēc JavaScript ir 10 reizes bīstamāks par attēliem

Bieži vien vietņu īpašnieki visu vainu par lēnu ielādi noveļ uz neoptimizētiem attēliem. Taču starp 1 MB attēlu un 1 MB JavaScript failu pastāv fundamentāla fiziska atšķirība. Kad pārlūks lejupielādē attēlu, tas vienkārši dekodē pikseļus un nodod tos grafiskajam procesoram (GPU) - galvenais pavediens paliek brīvs un lapa turpina reaģēt uz pieskārieniem.

Turpretī JavaScript ir izpildāms kods. Lai tas sāktu darboties, mobilās ierīces procesoram ir jāveic četri smagi posmi:

  1. Lejupielāde mobilajā tīklā: Faila saņemšana ar mainīgu latentumu (Latency).
  2. Parsēšana (Parsing): Koda teksta pārvēršana abstraktā sintakses kokā (AST).
  3. Kompilēšana (Compilation): Koda mašīntulkošana uz baitu kodu.
  4. Izpilde (Execution): Skripta fiziska darbināšana galvenajā pavedienā, bloķējot jebkuru lietotāja klikšķi vai ritināšanu.

Tieši šis izpildes posms ir tas, kas rada augstu Interaction to Next Paint (INP) rādītāju, par ko Google meklētājs 2026. gadā nežēlīgi pazemina vietnes mobilo rangu.

Aigars Armanovs
Aigars Armanovs Galvenais Arhitekts & Dibinātājs

"Modernajā tīmekļa izstrādē ir izveidojies bīstams slinkuma ieradums: lai uzrakstītu 5 rindiņas interaktīva koda, programmētājs ievelk projektā 300 kilobaitu smagu bibliotēku ar tūkstošiem nevajadzīgu funkciju. Tā ir kā braukšana uz veikalu pēc maizes ar smago ekskavatoru. Koda mikrokirurģija nozīmē izņemt visus liekos spraudņus un aizstāt tos ar tīru, elegantu natīvo kodu, kas ielādējas acumirklī un nenoslogo klienta telefonu."

Bibliotēku aizstāšana ar natīviem risinājumiem - 3 Konkrēti piemēri

Aplūkosim trīs izplatītākos JavaScript balasta avotus un to modernās, vieglās alternatīvas:

1. Swiper / Slick Slider aizstāšana ar CSS Scroll Snap

Attēlu vai atsauksmju karuselis ir atrodams gandrīz katrā mājaslapā. Agrāk tam tika izmantotas smagas JS bibliotēkas (120 KB+), kas rēķināja katru pikseli ar JavaScript notikumiem. Mūsdienu pārlūki atbalsta natīvo CSS Scroll Snap, kas prasa tieši 0 kilobaitu JavaScript koda:

/* 100% Natīvs karuselis bez viena JavaScript faila */
.mmn-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 16px;
}

.mmn-carousel-item {
  flex: 0 0 85%;
  scroll-snap-align: start;
}

Šis vienkāršais CSS risinājums darbojas ar 120fps gludumu, atbalsta natīvos vilkšanas žestus un nepatērē ne milisekundes procesora laika.

2. Modālo logu un uznirstošo formu aizstāšana ar HTML5 dialog

Lai izveidotu kontaktu logu vai apstiprinājuma formu, izstrādātāji gadiem izmantoja sarežģītus jQuery vai Bootstrap spraudņus. Šodien HTML5 piedāvā natīvo tagu <dialog>, kam ir iebūvēts fokusa slazds (Focus Trap), aizvēršana ar pogu ESC un piekļūstamības (WCAG) atbalsts:

const modal = document.querySelector('#contact-modal');
document.querySelector('#open-btn').addEventListener('click', () => modal.showModal());
document.querySelector('#close-btn').addEventListener('click', () => modal.close());

3. Ritināšanas animāciju aizstāšana ar IntersectionObserver

Tā vietā, lai vilktu projektā smago AOS vai ScrollMagic bibliotēku (kas pastāvīgi klausās window.onscroll notikumu un rada kadru lēkāšanu), natīvais IntersectionObserver API ļauj asinhroni un bez aiztures uzzināt brīdi, kad elements ienāk ekrānā, piešķirot tam vieglu CSS klasi.

Tehniskais salīdzinājums - Bibliotēku haoss pret Tīru Vanilla JS arhitektūru

Apskatīsim koda un veiktspējas atšķirības reālā testā uz vidējas klases Android ierīces:

Veiktspējas metrika Standarta spraudņu vietne Optimizēta mikrokirurģijas vietne
Kopējais JavaScript svars 1,840 KB (saspiests 480 KB) 145 KB (saspiests 38 KB)
Galvenā pavediena bloķēšana (TBT) 620 ms (Kritiski sarkans) 35 ms (Zaļā zona)
Reakcija uz klikšķi (INP) 280 ms (Pārkāpj standartu) 45 ms (Zibenīgs tūlītējums)
Google PageSpeed Mobile 42 no 100 punktiem 98 no 100 punktiem
Mobilā atteikumu attiecība (Bounce Rate) 58% 34%

Pārņemot un atjaunojot lēnas vietnes, mājaslapu modernizācija ļauj saglabāt vizuālo identitāti, bet pilnībā pārrakstīt koda dzinēju.

Fontu ielādes optimizācija un Zero FOIT arhitektūra

Bieži aizmirsts mobilās veiktspējas kavēklis ir nepareiza tīmekļa fontu ielāde. Ja vietne izmanto Google Fonts vai citus ārējos serverus, pārlūkam pirms teksta parādīšanas ir jāizveido jauni DNS savienojumi, jāveic SSL saskaņošana un jālejupielādē vairāki fontu faili. Šajā laikā klients redz baltu ekrānu (Flash of Invisible Text - FOIT) vai lapa pēc 2 sekundēm neglīti pārlec (Layout Shift - CLS).

Modernais inženiertehniskais standarts paredz:

  1. Lokāla WOFF2 fontu servēšana: Fonti glabājas tieši uz tā paša servera, izslēdzot jebkādus ārējos savienojumus.
  2. font-display: swap atribūts: Pārlūks nekavējoties uzzīmē tekstu ar sistēmas fontu un gludi nomaina to uz pielāgoto fontu brīdī, kad fails ir gatavs.
  3. Fontu svara ierobežošana: Vietnē tiek ielādēti maksimāli divi fontu svari (parasti 400 regulārais un 600 treknraksts), samazinot fontu koda svaru līdz nieka 28 kilobaitiem.

DOM koka dziļuma un mezglu optimizācija

Vizuālo vizuālo konstruktoru (Elementor, Divi) lielākais posts ir pārmērīgs HTML elementu ligzdojums (Deep DOM Nesting). Lai uzzīmētu vienu vienkāršu pogu, vizuālais redaktors bieži izveido 12 savstarpēji iekļautus <div> elementus ar desmitiem lieku klašu. Vājam mobilajam telefonam šāda koka apstrāde un pārzīmēšana (Reflow) prasa milzīgus resursus.

Veicot koda mikrokirurģiju, mēs samazinām kopējo DOM elementu skaitu lapā no 2,500 uz mazāk nekā 600, bet koka dziļumu ierobežojam līdz maksimāli 6 līdz 8 līmeņiem. Rezultātā pārlūks spēj acumirklī renderēt lapu, nodrošinot nevainojamu ritināšanas plūdumu un tūlītēju pieskārienu uztveri.

Kritiskā CSS (Critical Path) ģenerēšana un asinhronā resursu pārvaldība

Lai panāktu, ka mobilā ierīce uzzīmē lapas pirmo ekrānu (Largest Contentful Paint - LCP) zibenīgā ātrumā zem 0.8 sekundēm, ir jāatbrīvojas no ārējo CSS stila failu bloķējošās ietekmes. Klasiskā WordPress vietnē pārlūks pirms ekrāna parādīšanas ielādē 10 līdz 15 dažādus stila failus, katru no tiem gaidot simtiem milisekunžu.

Mikrokirurģijas risinājums ir Kritiskā CSS (Critical Path CSS) ievietošana tieši HTML dokumenta <head> sekcijā (inline veidā). Šie 8 līdz 12 kilobaiti koda satur tikai tos stilus, kas nepieciešami paša pirmā ekrāna attēlošanai:

  • Tūlītējs pirmais kadrs: Pārlūkam nav jāgaida neviens ārējais pieprasījums - lapa kļūst redzama un lasāma jau pirmajā datu paketē (First Byte).
  • Asinhrona pārējo stilu ielāde: Visi pārējie stili (galvenes apakšdaļa, BUJ akordeoni, kājene) tiek ielādēti fonā ar rel="preload" un aktivizēti brīdī, kad klients sāk ritināt lapu.
  • Brotli kompresija servera līmenī: Savienojumā ar Nginx servera Brotli saspiešanas algoritmu kopējais HTML kods tiek samazināts par vēl papildu 20%, salīdzinot ar novecojušo Gzip standartu.

Attēlu adaptīvā piegāde - AVIF formāts un Responsive srcset konfigurācija

Lai gan JavaScript bibliotēku izskaušana dod lielāko lēcienu procesora atslogošanā, vizuālo materiālu pareiza piegāde ir otrs kritiskais pīlārs, kas nodrošina stabilu 100 punktu PageSpeed vērtējumu gan mobilajās, gan datora ierīcēs.

Mūsdienu tīmekļa arhitektūrā attēlu apstrāde tiek veikta stingri servera līmenī:

  • Nākamās paaudzes AVIF formāts: Salīdzinot pat ar WebP standartu, AVIF nodrošina par 30% līdz 50% mazāku faila svaru pie identiskas vizuālās kvalitātes, samazinot vāka attēla izmēru no 300 kilobaitiem uz nieka 45 kilobaitiem.
  • HTML5 <picture> un srcset atribūti: Pārlūkam tiek piedāvāti 4 dažādi attēla izmēri (mobils 480px, planšete 768px, dators 1200px, Retina 2x), un ierīce patstāvīgi izvēlas vispiemērotāko variantu atbilstoši ekrāna platumam.
  • Ekrāna augšējā attēla ielādes prioritāte (Fetchpriority High): Raksta vāka attēlam obligāti tiek pievienots atribūts fetchpriority="high" un noņemts loading="lazy", nodrošinot, ka pārlūks to sāk lejupielādēt kā pašu pirmo prioritāro resursu.

HTTP/3 un QUIC protokola priekšrocības mobilajā tīklā: Mūsdienu VPS konfigurācijā ar Nginx vai OpenLiteSpeed mēs iespējojam HTTP/3 ar QUIC protokolu. Lai nodrošinātu nepārtrauktu ātrumu un stabilitāti, nepieciešama profesionāla mājaslapu uzturēšana un serveru konfigurācija ar Nginx un FastCGI mikrokešatmiņu. Ja klients pārvietojas un mobilā telefona signāls pārslēdzas starp 4G, 5G un Wi-Fi tīkliem, vietne turpina ielādēties bez savienojuma pārtraukuma un bez kavēšanās.

Koda audits

JavaScript mikrokirurģijas kontroles saraksts

1
Coverage analīze: Pārlūka Chrome DevTools Coverage cilnē identificēti neizmantotie JS faili (Unused JavaScript virs 50%).
2
Spraudņu revīzija: Likvidēti atsevišķi spraudņi slīdņiem, modālajiem logiem un animācijām, aizstājot tos ar natīvo kodu.
3
Defer un Async atribūti: Visi atlikušie skripti aprīkoti ar defer ielādes režīmu, nebloķējot DOM būvēšanu.
4
Core Web Vitals INP verifikācija: Pārbaudīts, ka mobilajā skatā INP rādītājs nepārsniedz 100ms slieksni.

Biežāk uzdotie jautājumi par JavaScript optimizāciju

Vai koda optimizācija nozīmē, ka mājaslapa izskatīsies vienkāršāka?

Nē, tieši pretēji! Vizualitāte un dizaina elegance paliek nemainīga vai pat uzlabojas, jo natīvās pārlūka animācijas un CSS Scroll Snap kustas daudz gludāk (ar 60 līdz 120 kadriem sekundē) nekā smagi JavaScript skripti, kas bieži raustās mobilajās ierīcēs.

Cik ilgā laikā var veikt šādu mikrokirurģiju esošai WordPress vietnei?

Standarta uzņēmuma mājaslapai ar 10 līdz 20 sadaļām pamata koda attīrīšana, lieko spraudņu likvidēšana un galveno moduļu aizstāšana ar Vanilla JS prasa no 3 līdz 5 darba dienām, sniedzot tūlītēju PageSpeed kāpumu.

Kā pārbaudīt savas vietnes JavaScript bloķēšanas laiku?

Ievadiet savu adresi bezmaksas rīkā PageSpeed Insights un pievērsiet uzmanību rādītājam Total Blocking Time (TBT) mobilajā skatā. Ja TBT pārsniedz 200 milisekundes, jūsu vietnei ir nepieciešama tūlītēja koda optimizācija.

Noderīgs saturs?

Padalies ar šo rakstu ar kolēģiem vai partneriem

Palīdzi citiem atklāt praktiskas digitālā mārketinga, SEO un AI automatizācijas stratēģijas.

Aigars Armanovs

Aigars Armanovs

SEO arhitekts & AI procesu vadītājs | MMN dibinātājs

MMN vadītājs Aigars mārketingā pirmo pieredzi guvis mārketinga speciālista amatā veikalu tīklā Drogas 2005. gadā, vēlāk attīstot privātus interneta projektus un vadot vadošu digitālā mārketinga aģentūru Latvijā ar fokusu uz Google produktiem. Šobrīd specializējas digitālā mārketinga, SEO un biznesa procesu automatizācijā ar mākslīgā intelekta risinājumiem, palīdzot uzņēmumiem mērogot rezultātus.

Visi autora raksti • SEO pakalpojumi • LinkedIn profils
← Iepriekšējais raksts

Klienta mūža vērtības LTV solīšana Google Ads un Meta kampaņās - kā piesaistīt ilgtermiņa pircējus

Nākamais raksts →

Pēcklikšķa trauksmes noņemšana mājaslapā - kā mikromierinājuma teksti palielina konversijas par 30%

Atgriezties uz visiem rakstiem

Vēlaties pārrunāt sava biznesa digitālo izaugsmi?

Piesakiet 30 minūšu stratēģijas sarunu. Kopā izskatīsim jūsu digitālā mārketinga, SEO un AI automatizācijas potenciālu.

Pieteikt bezmaksas sarunu
Scroll to Top