Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: HTTP requestin sijasta kuvat "muistiin"

Paulus M [15.04.2013 06:08:47]

#

Teen erästä MMORPG:ia ihan PHP, Javascript, MySQL alustalle. Pelin luonteesta johtuen, jokaiselle pelaajalle pitää päivittää tuoreet tapahtumat n.1 sekunnin välein, aiheuttaen esim. 500 AJAX requestia sekunnissa. Luulisin, että tästä vielä palvelimet selviytyy.

Nyt tuli kuitenkin mieleen, että pelin grafiikka on puhtaasti html pohjaisia gif ja png kuvia joita JS liikuttaa, keskimmäärin vain 40px * 40px kuvia. Jokaainen kuva on kuitenkin erillinen http requesti palvelimelle, joka lisää palvelimen kuormitusta. Kuvia saattaa olla useita satoja.

Kysymykseni kuuluu: onko mahdollista ladata kuvat jotenkin selaimen välimuistiin tai jonnekkin, siten, ettei kaikkia kuvia tartte erikseen ladata jokaisen uuden sivunlatauksen yhteydessä?
Vai onko muita ehdotuksia? gif-animaatiota ei vissiin voi edes pakata yhteen isoon kuvaan, koska niissä on layerit, jotka toimii animaation framena.

The Alchemist [15.04.2013 08:06:30]

#

Kuvat tallentuvat automaattisesti selaimen välimuistiin eli cacheen. Joudut pikemminkin tuunaamaan headereita, jotta saisit kuvat olemaan tallentumatta välimuistiin automaattisesti. Jos selain lataa kuvat jokaisen ajax-pyynnön jälkeen, niin todennäköisesti evotat jotain.

Jos sinun on tarkoitus siirtää kuvia, niin silloin siirrä kuvaa, älä poista vanhaa img-elementtiä ja luo uutta. Jos lisäät uuden img-elementin, selain saattaa tehdä uuden pyynnön palvelimelle, vaikka kuva olisikin sama kuin jossain aiemmassa img-elementissä. Suorituskyvynkin kannalta on haitallista generoida uudet kuvat turhan takia.

jukkah [15.04.2013 08:21:15]

#

Kannattaa ehkä tutustua aiheeseen liittyvään kurssiin: https://www.udacity.com/course/cs255. Kurssilla käytetään canvasta.

Edit. Kuvat ladataan yhtenä isona tiedostona muistiin, josta yksittäiset kuvat piirretään tarvittaviin kohtiin. Tämä nopeuttaa peliä kovasti.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta