Maxim V. Pavlov
Maxim V. Pavlov

Reputation: 10509

Client script caching in ASP.NET IIS application

I am currently testing a web site as the development goes on, and almost every time the client script is updated, I need to clear the browser cache for a new functionality to become available on the client due to the fact that the browser downloads the fresh compy of the .js file.

What if in production I roll out a new version of a script? How do I get the client browsers to get it as soon as it is uploaded to the server?

I am using an ASP.NET MVC 4 site.

Upvotes: 1

Views: 686

Answers (3)

MikeM
MikeM

Reputation: 27405

Rename the file to create versioning:

so

<script src="myscript.js"></script>

becomes

<script src="myscript-9-5-2012.js"></script>

Also per https://developers.google.com/speed/docs/best-practices/caching#LeverageProxyCaching

It's not recommended to use querystrings for versioning (ie. myscript.js?v=1.1.0) because specifically

Most proxies, most notably Squid up through version 3.0, do not cache resources with a "?" in their URL ...

Upvotes: 0

Tim B James
Tim B James

Reputation: 20364

The best way to stop your scripts from caching is to add a random querystring value at the end of each line. e.g.

 <script src="/path-to-your-script/script.js?v=0b1"></script>

This is great in development as your scripts never get cached, although in production you do really want the browser to cache the scripts to speed things up.

So for production, you would probably want to introduce some versioning like jquery for instance, jquery-1.8.0.js

Upvotes: 0

user339597
user339597

Reputation:

Easiest way will be adding the version number to the script file(say script_1.6.js etc)

Upvotes: 1

Related Questions