How can I make the browser see CSS and Javascript changes? How can I make the browser see CSS and Javascript changes? javascript javascript

How can I make the browser see CSS and Javascript changes?


I found that if you append the last modified timestamp of the file onto the end of the URL the browser will request the files when it is modified. For example in PHP:

function urlmtime($url) {   $parsed_url = parse_url($url);   $path = $parsed_url['path'];   if ($path[0] == "/") {       $filename = $_SERVER['DOCUMENT_ROOT'] . "/" . $path;   } else {       $filename = $path;   }   if (!file_exists($filename)) {       // If not a file then use the current time       $lastModified = date('YmdHis');   } else {       $lastModified = date('YmdHis', filemtime($filename));   }   if (strpos($url, '?') === false) {       $url .= '?ts=' . $lastModified;   } else {       $url .= '&ts=' . $lastModified;   }   return $url;}function include_css($css_url, $media='all') {   // According to Yahoo, using link allows for progressive    // rendering in IE where as @import url($css_url) does not   echo '<link rel="stylesheet" type="text/css" media="' .        $media . '" href="' . urlmtime($css_url) . '">'."\n";}function include_javascript($javascript_url) {   echo '<script type="text/javascript" src="' . urlmtime($javascript_url) .        '"></script>'."\n";}


Some solutions I have seen involve adding a version number to the end of the file in the form of a query string.

<script type="text/javascript" src="funkycode.js?v1">

You could use the SVN revision number to automate this for you by including the word LastChangedRevision in your html file after where v1 appears above. You must also setup your repository to do this.

I hope this further clarifies my answer?

Firefox also allows pressing CTRL + R to reload everything on a particular page.


In my opinion, it is better to make the version number part of the file itself e.g. myscript.1.2.3.js. You can set your webserver to cache this file forever, and just add a new js file when you have a new version.