Los cacheproblemen op met Flash, JavaScript, XML, KML of Google Maps

Depositphotos 27736851 s

Dit is een kort en krachtig bericht over cacheproblemen. Sites en browsers zijn gebouwd om bronnen echt te optimaliseren. Ze doen het soms zo goed dat het eindresultaat daadwerkelijk uw dynamische website breekt in plaats van deze zo vaak bij te werken als u wilt. Vandaag werkte ik mee JW Player, een Flash Movie-speler die een lijst met films ophaalt via een XML-bestand.

Het probleem is dat we het bestand altijd bijwerken met nieuwe webinars en trainingslessen. Als onze klanten elke dag naar de pagina zouden blijven komen, zou het een cacheversie van de afspeellijst laden en hen nooit de nieuwste en beste laten zien.

Als gevolg hiervan moest ik het SWF-objectcode zodat het zou denken dat het elke keer een nieuwe afspeellijst laadde.

var video = new SWFObject('player.swf','mpl','670','280','9');
var playlist = 'playlist.xml't='+Math.round(1000 * Math.random());
video.addParam('allowscriptaccess','always');
video.addParam('allowfullscreen','true');
video.addParam('flashvars','&file='+playlist+'&playlistsize=350&controlbar=over&playlist=right');
video.write('video');

De manier waarop ik de speler voor de gek hield, was door een querystring op de lijstnaam te plaatsen die een willekeurig nummer genereerde met JavaScript. Het maakt niet uit wie er op de pagina komt, het zal naar een andere bestandsnaam zoeken, zodat de speler de afspeellijst elke keer vers binnenhaalt.

Dit is niet alleen handig voor JW Player, ik heb deze techniek ook gebruikt voor Google Maps bij het omgaan met KML-bestanden die dynamisch veranderen. Genereer gewoon een willekeurige querystring en het systeem laadt het (vrij statische) KML-bestand opnieuw elke keer dat de gebruiker het bezoekt. Het is een hack, maar het is een gemakkelijke manier om caching in wezen om te zetten korting in deze toepassingen die de optie niet hebben.

Een reactie

  1. 1

Wat denk je?

Deze site gebruikt Akismet om spam te verminderen. Ontdek hoe uw reactiegegevens worden verwerkt.