Løs problemer med hurtigbufring med Flash, JavaScript, XML, KML eller Google Maps
Dette er et kort og søtt innlegg om problemer med hurtigbufring. Nettsteder og nettlesere er bygget for å virkelig optimalisere ressursene. De gjør det så bra noen ganger at sluttresultatet faktisk bryter det dynamiske nettstedet ditt i stedet for å oppdatere det så ofte du vil. I dag jobbet jeg med JW-spiller, en Flash Movie-spiller som henter inn en liste over filmer via en XML-fil.
Problemet er at vi alltid oppdaterer filen med nye webinarer og opplæringsklasser. Hvis kundene våre fortsatte å komme til siden hver dag, ville den laste en hurtigbufret versjon av spillelisten og aldri vise dem den nyeste og beste.
Som et resultat måtte jeg hacke SWF Objektkode slik at den skulle tro at den lastet inn en ny spilleliste hver gang.
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');
Måten jeg lurte spilleren på var å sette en spørringsstreng på listenavnet som genererte et tilfeldig tall ved hjelp av JavaScript. Uansett hvem som treffer siden, vil den se etter et annet filnavn, så spilleren vil trekke inn spillelisten frisk hver gang.
Dette er ikke bare nyttig for JW Player, jeg har også brukt denne teknikken for Google Maps når jeg arbeider med KML-filer som endres dynamisk. Bare generer en tilfeldig spørringsstreng, og systemet vil laste inn den (ganske statiske) KML-filen hver gang brukeren besøker. Det er et hack, men det er en enkel måte å snu cache i hovedsak på off i disse applikasjonene som ikke har mulighet.