Skip to content

Sajt https://free.scorespro.com/ je sajt sa kojeg možemo besplatno preuzimati sportske rezultate a koje kasnije možemo kao uslugu da ponudimo u različitim aplikacijama: IPTV, Android, veb itd. Radi poboljšanja ažurnosti sportskih rezultata javlja se potreba za optimizacijom procesa preuzimanja podataka.

Korak 1

Preuzimanje rezultata trenutno funkcioniše na sledeći način: sistemski šedjuler na svaka tri minuta pokreće skript koji skida rezultate za sve sportove redom (fudbal pa zatim košarka pa zatim tenis itd). Prvi korak je da se preuzimanje rezultata razdvoji po sportovima, odnosno, da se preuzimanje rezultata vrši nezavisno za svaki sport što samo po sebi neće ubrzati proces ali će biti dobra osnova za korak 2.

Korak 2

Potrebno je uvesti pravila za preuzimanje podataka. Npr., ako u nekom sportu nema utakmica koje su u toku, frekvencija preuzimanja podataka treba da se smanji sa jednom u tri minuta na npr. jednom u pet ili deset minuta. Sa druge strane, ako u sportu imamo aktivne utakmice, frekvencija preuzimanja podataka može da se poveća na npr. svaki minut.

Drugi primer je sport za koji nemamo zakazane utakmice u datom danu. U ovom slučaju ne bi bila greška ako ne bismo pozivali skript za preuzimanje podataka za taj sport više u tom danu ili, da bismo bili 100% sigurni, možemo za dati sport proveravati rezultate jednom u sat vremena.

Ovaj korak zahteva prelazak sa sistemskog šedjulera na deamon koji ima sopstveni šedjuler preuzimanja podataka.

Korak 3

Za svaki sport imamo listu utakmica, svaka utakmica ima vreme početka. Ako prva utakmica dana počinje u 17 sati, nema razloga proveravati rezultate za ovaj sport barem sat vremena pre početka prve utakmice. U ovom scenariju možemo da ne dobijemo pravovremenu informaciju o promenu statusa zakazane utakmice (npr. vreme početka je pomereno ili je utakmica odložena).

Korak 4

Ako u datom trenutku ne postoji aplikacija koja preko našeg API-ja preuzimaju rezultate, onda verovatno ne postoji potreba ni da mi u tom trenutku preuzimamo rezultate sa https://free.scorespro.com/ 🙂

U nekom ekstremnom scenariju, za svaki sport bi u bazi bilo zabeleženo vreme kada sledeći put treba preuzeti podatke sa https://free.scorespro.com/. Kada aplikacija preko našeg API-ja zatraži rezultate za određeni sport, prvo se proverava da li je prošao trenutak sledećeg preuzimanja podataka. Ako nije prošao, aplikacija dobija natrag postojeće rezultate iz baze. Ako jeste prošao trenutak, rezultati se prvo preuzimaju sa https://free.scorespro.com/, upisuju u bazu, ažurira se vreme kada sledeći put treba preuzeti podatke i onda se aplikaciji vraćaju ti ažurirani podaci (iz baze). U ovom slučaju, taj prvi korisnik koji inicira preuzimanje podataka sa https://free.scorespro.com/ će imati kašnjenje od par sekundi.

 

U principu, sve što je potrebno da se uradi da bi se optimizovalo učitavanje sajta se nalazi na Guglovoj stranici PageSpeed Insights ali evo u kratkim crtama šta je sve to:

Slike treba kompresovati kako bi se smanjila količina bajtova. Smanjivanje količine bajtova (informacija o slici) vodi ka degradaciji kvaliteta pa stoga treba naći kompromis između veličine fajla i kvaliteta prikaza. Sajt Optimizilla vam može pomoći oko optimizacije slika. Generalno gledano, JPEG fajlovi su manji od PNG fajlova ali samo ako imamo sliku sa puno nijansi boja i detalja (fotografiju); ako slika više naginje ka crtežu i ima manji broj velikih jednobojnih površina, onda je PNG bolje rešenje.

gzip je format kompresije fajlova koji podržavaju svi moderni brauzeri i u principu se svodi na to da server, kada brauzeru šalje podatke, šalje ih u kompresovanom obliku a onda ih brauzer u letu dekompresuje i prikazuje korisniku bez da ovaj išta primeti sem naravno toga da se stranice brže učitavaju 🙂 Ukoliko veb hosting podržava gzip kompresiju, treba je uključiti kako bi se ubrzalo učitavanje sajta.

Minifikacijom se uklanjaju nepotrebni znaci poput praznina i novih redova iz HTML, CSS i JS koda čime se dobijaju manji fajlovi te se stranice opet brže učitavaju.

Keširanje je proces kojim se fajlovi u određenom periodu čuvaju na klijenstkoj strani i ne dovlače uvek iznova sa servera čime se takođe pozitivno utiče na brže učitavanje sajta.

CDN je mreža servera koja omogućuje krajnjem korisniku da bude bliže vašem sajtu bez obzira u kom se delu sveta on nalazio.

Odlaganje učitavanje sadržaja koji se ne vidi odmah po otvaranju sajta (above the fold) kao i skriptova koji nisu od presudne važnosti.

freeCodecamp

Pagespeed score

  • uključiti spoljne veze u kompresiju stranice
  • minifikovati skriptove
  • smanjiti broj redirekcija
  • optimizovati slike uključujući i pozivanje slika sa spoljnih veza
  • odložiti učitavanje skriptova

YSlow score

  • dodati u zaglavlju kada ističe fajl
  • smanjiti broj HTTP zahteva ka spoljnim skriptovima
  • komprimovati komponente pomoću gzip
  • koristiti CDN
  • minifikovati skriptove
  • izbegavati preusmeravanje URL adresa
  • izbegavati slanje kolačića za statične sadržaje (slike)
  • smanjiti DNS potraživanja (komponente koje se nalaze na više domena)