Åtgärda cachningproblem med Flash, JavaScript, XML, KML eller Google Maps
Det här är ett kort och sött inlägg om cachingfrågor. Webbplatser och webbläsare är byggda för att verkligen optimera resurser. De gör det så bra ibland att slutresultatet faktiskt bryter din dynamiska webbplats istället för att uppdatera den så ofta du vill. Idag jobbade jag med JW-spelare, en Flash Movie-spelare som tar en lista över filmer via en XML-fil.
Problemet är att vi alltid uppdaterar filen med nya webbseminarier och utbildningskurser. Om våra kunder fortsatte att komma till sidan varje dag skulle den ladda en cachad version av spellistan och aldrig visa dem den senaste och bästa.
Som ett resultat var jag tvungen att hacka SWF Objektkod så att den skulle tro att den laddade en ny spellista varje gång.
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');
Det sätt som jag lurade spelaren var genom att sätta en frågesträng på listnamnet som genererade ett slumpmässigt nummer med JavaScript. Oavsett vem som träffar sidan kommer det att leta efter ett annat filnamn, så spelaren kommer in i spellistan fräsch varje gång.
Detta är inte bara praktiskt för JW Player, jag har också använt den här tekniken för Google Maps när jag hanterar KML-filer som förändras dynamiskt. Skapa helt enkelt en slumpmässig frågesträng så laddar systemet om den (ganska statiska) KML-filen varje gång användaren besöker. Det är ett hack, men det är ett enkelt sätt att i huvudsak vända cachning sänkt i dessa applikationer som inte har möjlighet.