flex-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From OmPrakash Muppirala <bigosma...@gmail.com>
Subject Re: Force last SWF downloading
Date Mon, 05 May 2014 22:48:25 GMT
Setting the cache control in the .htaccess (or its equivalent) is the best
approach in my opinion.
This is what I do when I want avoid caching of certain files, i.e. the
browser should always load this directly from the server:

Header Set Cache-Control "no-store, no-cache"

Thanks,
Om


On Mon, May 5, 2014 at 3:40 PM, <modjklist@comcast.net> wrote:

> This issue has also worried me (a lot). My approach:
>
> I also change the swf file name as you do. Then I manually update the
> Main.html file to refer to the new swf file name. The Main.html file name
> doesn't change. I place the files on the server.
>
> I change my .htaccess file as follows:
>
>
>
> #
> ------------------------------------------------------------------------------
> # | Set Cache-Control |
> #
> ------------------------------------------------------------------------------
> # Cache-Control no-cache means: If you want to use a cached copy of this
> in future, you must first
> # check with me that it is up-to-date (i.e. perform revalidation)
> #
> https://developers.google.com/speed/docs/best-practices/caching?csw=1#LeverageBrowserCaching
> # note: mod_headers is installed by default
> <FilesMatch "\.(html|swf|pdf)$">
> <IfModule mod_headers.c>
> Header set Cache-Control "no-cache, public"
> </IfModule>
> </FilesMatch>
>
> I'm no expert here, but I'm led to believe this code will force the .html
> and .swf files to re-download when newer versions are on the server
> compared to client cache. It seems to work in Chrome, IE 10, FF. This way,
> you don't need to request user to refresh cache manually. As I'm no expert
> here, I'd be interested for people to either poke holes in this approach or
> confirm it's a valid method.
>
> For completeness, I also include the following in .htaccess:
>
> #
> ------------------------------------------------------------------------------
> # | Expires headers (for better cache control) |
> #
> ------------------------------------------------------------------------------
> # Far-future expires headers (for better cache control)
> # 10/20/2013 See: http://www.extravision.com/blog/whats-wrong-caching
> # http://httpd.apache.org/docs/2.2/mod/mod_expires.html
> #
> http://stackoverflow.com/questions/9933012/how-to-use-mod-headers-and-mod-expires-to-cache
> #
> https://developers.google.com/speed/docs/best-practices/caching?csw=1#LeverageBrowserCaching
> # Chrome and IE don't obey cache-busting arguments to ends of URLs unless
> this added.
> # note: mod_expires is installed by default
> <IfModule mod_expires.c>
> ExpiresActive On
>
> ExpiresDefault "access plus 1 month"
>
> # CSS, read it like: expire css files after 1 month in the client's cache
> ExpiresByType text/css "access plus 1 year"
>
> # Data interchange
> ExpiresByType application/json "access plus 0 seconds"
> ExpiresByType application/xml "access plus 0 seconds"
> ExpiresByType text/xml "access plus 0 seconds"
>
> # Favicon (cannot be renamed!)
> ExpiresByType image/x-icon "access plus 6 months"
>
> # HTML components (HTCs)
> ExpiresByType text/x-component "access plus 6 months"
>
> # HTML
> ExpiresByType text/html "access plus 0 seconds"
>
> # JavaScript
> ExpiresByType text/javascript "access plus 6 months"
> ExpiresByType application/javascript "access plus 6 months"
> ExpiresByType application/x-javascript "access plus 6 months"
>
> # Flash
> ExpiresByType application/x-shockwave-flash "access plus 6 months"
>
> # PDF
> ExpiresByType application/pdf "access plus 6 months"
>
> # Manifest files
> ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
> ExpiresByType text/cache-manifest "access plus 0 seconds"
>
> # Media
> ExpiresByType audio/ogg "access plus 6 months"
> ExpiresByType image/gif "access plus 6 months"
> ExpiresByType image/jpeg "access plus 6 months"
> ExpiresByType image/jpg "access plus 6 months"
> ExpiresByType image/png "access plus 6 months"
> ExpiresByType image/ico "access plus 6 months"
> ExpiresByType video/mp4 "access plus 6 months"
> ExpiresByType video/ogg "access plus 6 months"
> ExpiresByType video/webm "access plus 6 months"
>
> # Web feeds
> ExpiresByType application/atom+xml "access plus 1 hours"
> ExpiresByType application/rss+xml "access plus 1 hours"
>
> # Web fonts
> ExpiresByType application/font-woff "access plus 6 months"
> ExpiresByType application/vnd.ms-fontobject "access plus 6 months"
> ExpiresByType application/x-font-ttf "access plus 6 months"
> ExpiresByType font/opentype "access plus 6 months"
> ExpiresByType image/svg+xml "access plus 6 months"
>
> </IfModule>
>
>
>
> ----- Original Message -----
>
> From: "Jesse Ward-Karet" <jwk@tanium.com>
> To: "users, apache" <users@flex.apache.org>
> Sent: Monday, May 5, 2014 12:34:45 PM
> Subject: Re: Force last SWF downloading
>
> We've struggled with this issue *a lot*. Here is our final solution that
> seems to have resolved the issue in a satisfactory way:
>
> 1. Our build environment renames the SWF to myapp_1_2_3_4.swf where
> 1.2.3.4 is the current version number.
>
> 2. We define a variable at compile time that specifies the SWF version
> number
>
> FlexBuilder: -define+=MYAPP::SWF_VERSION,'0.0.0.0'
> Ant XML: <define name="MYAPP::SWF_VERSION" value="${SWF_VERSION}" />
> Ant CMD: ant -DSWF_VERSION='%3' -f build.xml MYAPP
> AS Code: var SWF_VERSION:String = MYAPP::SWF_VERSION
>
> note: '%3' is a command line argument to a batch script that is called by
> our build environment.
>
> 3. At load time, MYAPP.SWF makes a request to the server to get the
> expected version of the SWF. If the value of SWF_VERSION does not match the
> version returned by the server, we show an error that asks the user to
> refresh the browser after clearing the cache. We also have a URL parameter,
> skipVersionCheck to bypass the check if necessary, and we allow 0.0.0.0 as
> our version number for debug builds.
>
>
>
> On May 3, 2014, at 1:22 AM, Angelo Lazzari <angelo.lazzari@redtulp.com>
> wrote:
>
> > Thanks Tomislav, i will give it a try.
> >
> > Angelo
> >
> >
> > 2014-05-03 10:05 GMT+02:00 Tomislav Pokrajcic <tomislav@svemir.net>:
> >
> >> You can enforce swf download (on each visit) by appending some random
> GET
> >> parameter to the url (e.g. .../myapp.swf?rnd=some_random_value).
> >>
> >> Something less invasive would be to append a version number to a swf
> file
> >> name (e.g. myapp_1_0_0.swf) and update the file name value in JavaScript
> >> responsible for loading swf each time you update the version.
> >> Filename can be stored in an external file that should be reloaded each
> >> time (using the above metod). That's much cheaper operation than loading
> >> the entire swf and deployment can be easily automated.
> >>
> >> Cheers,
> >>
> >> Tomislav
> >>
> >>
> >> On 3.5.2014. 8:31, Angelo Lazzari wrote:
> >>
> >>> Hi everyone,
> >>> i'm developing a web application with Apache Flex 4.12, so, to be
> clear,
> >>> when my client access into his computer browser and write the
> application
> >>> URL, he can login into the application.
> >>>
> >>> I need, obviously, to be sure my client is playing the last version i
> >>> published.
> >>>
> >>> So, without creating complex version algorithms or so on, is there a
> way
> >>> to
> >>> force the swf download even if the browser has all the usual cache
> >>> setting?
> >>>
> >>> Thanks
> >>> Angelo
> >>>
> >>>
> >>
> >> ---
> >> This email is free from viruses and malware because avast! Antivirus
> >> protection is active.
> >> http://www.avast.com
> >>
> >>
>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message