Flash’ta Cache’ten Okuma Sorunu

Sayfanızın içinde bir swf’niz ve içeriği sık sık güncelleniyor. Müşteriniz bakıyor ama değişiklikleri göremiyor. Çünkü cache’ten okuyor.

Bu durumu engellemek için çözüm basit:
'movie', '/swf/banner', olan kodunuzun sonuna o anki tarihi '<%=DateTime.Now.ToString()%>' ile aşağıdaki gibi yazdırıyorsunuz:

'movie', '/swf/banner'?<%=DateTime.Now.ToString() %>,

Param kısmında da aynı şeyi yazmak gerekiyor:
<param name="movie" value="/swf/banner.swf'?<%=DateTime.Now.ToString() %>

Bunun html çıktısı da şöyle oluyor:

'movie', '/swf/banner?16.02.2010 18:10:29',
Böylece güncellemeleriniz anlık görüntülenebiliyor:)

Not: Flash AC_RunActiveContent.js kullanılarak, eklenmiştir.

EKLEME: (17 Şubat 2010) Yorumlardan sonra, Kemal‘in de önerisiyle kodu <%=DateTime.Now.ToString("ddMMyyyyHMS") %> şeklinde yazmanın daha doğru olacağını öğrendim. Sonucu aradalarda nokta olmadan çıkartıyormuş.

This entry was posted in Uncategorized. Bookmark the permalink.

4 Responses to Flash’ta Cache’ten Okuma Sorunu

  1. Berkay UNAL says:

    ‘ın çıktısı bazı durumlar içerdiği karakterler yüzünden sorun çıkarabilir.

    Bunun yerine timestamp yani sadece rakamlardan oluşan bir string yada random bir değer kullanılmalı.

    ASP Timestamp:
    http://snipplr.com/view/6607/quick-asp-timestamp/

  2. ilka says:

    oh! be!!111

  3. Bilgilendirmen için teşekkür ederim Berkay.

  4. Can Altineller says:

    Eğer istemci (eski) bir proxy sunucusunun arkasında ise [ofis vb. gibi yerlerde rastlanıyor bunlara genelde] – kaynağın sonuna ?timestamp koyma numarası çalışmıyabiliyor. (Ancak çok ufak bir yüzde için diyelim)

    Bizim ürettiğimiz çözüm ise kaynak dosyalarının, (css, js ‘de buna dahil) bulunduğu dosyayı /kaynak/HASHSTRING/abc.css gibi yapılandırmak. Aslında abc.css /kaynak/abc.css altında, ancak, uygulama her boot ettiği zaman her kaynağın MD5′sumunu alıp, bunu bir map içinde tutarak, jsp’ler render edilirken ufak bir taglib ile pathlara bu ürettiğimiz hashstring’i sokmak, diğer taraftan da sunucu tarafında /kaynak/*/*.css’i /kaynak/*.css’e yönlendirmek. Bu şekilde gönderdiğimiz css,js’lerin expires, ve cache-control header’ları ile yine oynayarak, örneğin 1 sene expires set ederek – kullanıcıya göndermek. Developer flash, css veya js’yi değiştirdiği zaman – içinde durduğu folder’i da değiştiriyor, cached bir instance varsa invalidate oluyor ve yenisi geliyor.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>