Solved

browser caching

Posted on 2012-03-12
7
275 Views
Last Modified: 2012-05-07
In regards to forcing a browser to download a new copy of a file that it would typically cache, would adding a parameter to the url have the same effectiveness as changing the filename itself? ie: file.css?v=123 vs file123.css
0
Comment
Question by:nzinsli
  • 4
  • 3
7 Comments
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 37710967
That works if it constantly changes.  The problem of course is getting the browser to start downloading that version in the first place.  As long as the original pages are still cached with the original file name, the browser will still keep using those versions until they expire from the local cache.
0
 

Author Comment

by:nzinsli
ID: 37711015
The browser shouldn't use the cached file though if the html is calling for a new filename in the code tho, correct? I was just curious as to if one method was preferred over another.
0
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 37711270
The problem usually is that the HTML file is cached and the new file name for the CSS doesn't get picked up until the HTML file in the cache expires.
0
3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

 

Author Comment

by:nzinsli
ID: 37714857
While that may be true, I can't say I've ever had a problem with the html being cached or not showing the new version when loading. Wouldn't the browser look at the last modified date on the server version before rendering the cached html? Include files on the other hand...is where my question lies. If you suppose that it is not loading a cached html, is there any difference for caching if I call an included css file with file.css?v=123 or file-123.css?
0
 
LVL 83

Accepted Solution

by:
Dave Baldwin earned 500 total points
ID: 37716044
"file.css?v=123 or file-123.css"  No difference.  If the link is "file.css?v=124" next time, then there is.  It has appeared that some times the browser only looks at the last-modified date of the HTML file and if it hasn't changed, then it loads CSS and javascript from cache.  I think that maybe that has improved in the last year or two now that you mention it because it hasn't been as much of a problem for me recently.  But I've also upgraded my web server twice in the last year.
0
 

Author Comment

by:nzinsli
ID: 37716213
"If the link is "file.css?v=124" next time, then there is." ...If the version # changes, then there is a difference??

I'm glad you brought up modified date. The reason this all came about, is I'm going to be dynamically building the file include list via literals in vb.net. The version # is going to be read from a xml file that gets updated when one of these files is updated, so the user is more assured to get the latest code w/o refreshing. But, since the actual html file isnt being edited & saved, the modified date wont change. I wonder if this will cause an issue...hmmm...
0
 
LVL 83

Expert Comment

by:Dave Baldwin
ID: 37716370
The browser cache is done by the complete URL including the query string.  Adding the current time is a standard technique in AJAX to prevent the browser from just returning info from it's cache.

Look here for info on preventing caching in IIS: http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Foreword (July, 2015) Since I first wrote this article, years ago, a great many more people have begun using the internet.  They are coming online from every part of the globe, learning, reading, shopping and spending money at an ever-increasing ra…
Learn by example how to specify CSS selectors for Selenium WebDriver test automation software.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
This video teaches users how to migrate an existing Wordpress website to a new domain.

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question