Päällekkäinen JavaScript
Silktide tarkistaa, sisältyykö sivusi lataamaan koodiin jotain useammin kuin kerran. Päällekkäinen koodi kasvattaa sivua ja hidastaa sen latautumista tuomatta kävijälle mitään hyötyä.
Nykyaikainen koostetaan yleensä monista pienistä moduuleista, jotka paketoidaan muutamaksi suureksi tiedostoksi. Kun useita paketteja rakennetaan itsenäisesti – esimerkiksi oma koodisi ja upotettu pienoisohjelma – jokainen voi sisältää oman kopionsa samasta moduulista, jolloin kävijät lataavat saman toiminnallisuuden kahdesti.
Miksi tämä on tärkeää
Jokainen päällekkäinen moduuli kuluttaa latausaikaa, käsittelyaikaa ja mobiilidataa tarjoamatta vastineeksi mitään. Nopeassa toimistoyhteydessä hukka voi jäädä huomaamatta, mutta puhelimilla ja hitaammissa verkoissa olevat kävijät huomaavat sen suoraan: sivun avautuminen ja reagointi kestävät kauemmin.
Päällekkäisyys myös kasvaa yleensä huomaamatta: jokainen sivustolle lisätty uusi komentosarja tai pienoisohjelma voi tuoda mukanaan omat kopionsa yleisistä kirjastoista, joten hukka kertautuu ajan myötä, ellei sitä etsitä.
Korjaaminen
Tämä korjaus kuuluu kehittäjillesi ja sivuston rakennusprosessiin, ei sen sisältöön:
- Analysoi, miten sivuston JavaScript on paketoitu. Useimmissa paketointityökaluissa on analyysitila, joka havainnollistaa kunkin tulostiedoston sisällön ja helpottaa päällekkäisten moduulien havaitsemista.
- Määritä rakennusprosessi poistamaan jaettujen riippuvuuksien päällekkäisyydet, jotta useassa paikassa käytetty kirjasto sisällytetään kerran ja jaetaan sen sijaan, että se kopioidaan jokaiseen pakettiin.
- Yhdenmukaista versiot: saman kirjaston kahta eri versiota ei voi yhdistää, joten kaiken päivittäminen yhteen versioon on usein varsinainen korjaus.
- Jos päällekkäisyys johtuu kolmannen osapuolen komentosarjasta, jota et voi rakentaa uudelleen, pyydä palveluntarjoajalta kevyempää rakennetta tai korvaa komentosarja.
Miten Silktide testaa tämän
- Lataa sivu oikeassa selaimessa käyttäen nopeustesteihisi määritettyä laitetyyppiä, yhteysnopeutta ja testisijaintia.
- Tarkastele sivun lataamia JavaScript-tiedostoja ja tunnista moduulit, jotka esiintyvät useammassa kuin yhdessä tiedostossa. Kopiot yhdistetään niiden toiminnan perusteella, joten ne löydetään, vaikka tiedostot olisi muotoiltu tai eri tavoin.
- Raportoi jokainen päällekkäinen moduuli, tiedostot, joissa se esiintyy, sekä latauskoko, joka voitaisiin säästää poistamalla ylimääräiset kopiot.
- Arvioi sivu hukkaan menevän latauskoon perusteella: jo noin 10 kt päällekkäisyyttä laskee arvosanaa, ja vähintään 50 kt arvioidaan heikoksi.
Vianmääritys
Kaksi tiedostoa eivät sisällä täysin samaa koodia
Tarkistus yhdistää moduulit niiden sisällön perusteella, ei niiden tarkan tekstin perusteella. Sama moduuli voi näyttää hyvin erilaiselta kahdessa paketissa minimoinnin jälkeen, mutta olla silti sama päällekkäinen koodi.
Päällekkäisyys on kolmannen osapuolen komentosarjassa
Et voi rakentaa toisen osapuolen pakettia uudelleen. Ota asia puheeksi palveluntarjoajan kanssa, lataa heidän komentosarjansa toisella tavalla, joka jakaa riippuvuutesi, tai hyväksy kustannus, jos komentosarjan hyöty on sitä suurempi.