Lanjut ke konten
23 Februari 2011 / Jeffrey Hermanto Halimsetiawan

Menghindari Pengambilan Data dari Cache dengan WebClient


Kelas WebClient memungkinkan untuk melakukan pengambilan data dalam bentuk string dari suatu URL tertentu. Permasalahan terjadi ketika misalnya WebClient telah melakukan request ke alamat http://jeffrey.halimsetiawan.net/getHighscore.php untuk memperoleh daftar seluruh skor tertinggi, kemudian melakukan penambahan skor dengan melakukan request ke alamat http://jeffrey.halimsetiawan.net/addScore.php, lalu kembali melakukan request ke alamat http://jeffrey.halimsetiawan.net/getHighscore.php. Daftar skor tertinggi yang diperoleh dalam bentuk XML sebelum dan sesudah terjadi penambahan skor dalam running program yang sama akan menghasilkan XML sebelum terjadi penambahan skor. Hal ini disebabkan karena WebClient akan mengambil data dari cache apabila membuka URL yang sama dengan sebelumnya. Oleh karena itu, tips sederhana yang dapat dimanfaatkan adalah pemanfaatan GUID (Globally Unique Identifier) pada query string URL sebagai berikut:

Semoga bermanfaat.

//GUID menghasilkan 32 alphanumerik yang berbeda sehingga mencegah WebClient agar tidak mengambil data dari cache
string url = string.Format("{0}?{1}","http://jeffrey.halimsetiawan.net/getHighscore.php", Guid.NewGuid().ToString());
WebClient downloader = new WebClient();
downloader.DownloadStringCompleted += new DownloadStringCompletedEventHandler(OnDownloaderDownloadStringCompleted);
downloader.DownloadStringAsync(new Uri(url));

Tinggalkan komentar