Selesaikan Masalah Caching dengan Flash, JavaScript, XML, KML atau Peta Google

Depositphotos 27736851 s

Ini adalah catatan pendek dan manis mengenai masalah cache. Laman web dan penyemak imbas dibina untuk mengoptimumkan sumber. Kadang-kadang mereka melakukannya dengan baik sehingga hasil akhirnya benar-benar merosakkan laman web dinamik anda dan bukannya mengemas kini sesering yang anda mahukan. Hari ini saya bekerja dengan Pemain JW, pemain Flash Movie yang menarik senarai filem melalui fail XML.

Masalahnya ialah kami sentiasa mengemas kini fail dengan webinar baru dan kelas latihan. Sekiranya pelanggan kami terus datang ke halaman setiap hari, ini akan memuatkan versi senarai main yang disimpan dalam cache dan tidak pernah menunjukkan kepada mereka yang terbaru dan paling hebat.

Akibatnya, saya terpaksa menggodam Kod Objek SWF sehingga ia menganggap bahawa ia memuat senarai main baru setiap masa.

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');

Cara saya memperdaya pemain adalah dengan memasukkan querystring pada nama senarai yang menghasilkan nombor rawak menggunakan JavaScript. Tidak kira siapa yang memukul halaman, ia akan mencari nama fail yang berbeza, jadi pemain akan menarik senarai main baru setiap kali.

Ini bukan hanya berguna untuk Pemain JW, saya juga menggunakan teknik ini untuk Peta Google ketika berurusan dengan fail KML yang berubah secara dinamik. Cukup buat querystring rawak dan sistem akan memuat semula fail KML (cukup statik) setiap kali pengguna melawat. Ini adalah peretasan, tetapi cara mudah untuk mengubah cache pada dasarnya off dalam aplikasi ini yang tidak mempunyai pilihan.

Satu komen

  1. 1

Apa yang anda fikir?

Laman web ini menggunakan Akismet untuk mengurangkan spam. Ketahui bagaimana data komen anda diproses.