timestampclientscript Avoid navigator cache incoherence by including a timestamp in urls referencing local resources.

  1. Usage
  2. Operation

Extends CClientScript to include a timestamp in references (url) to local files. This timestamp will avoid issues that arise when server files are updated while the navigator's cache still serves the old files.

The client cache will still work, but will be update due to timestamp that changes the URL.

In other words, when you update a js,css,png, ... file that is in a theme directory for instance, the end user will get the update regardless of the state of his local cache, and less dependent on the caching scheme of your hosting provider.

Usage

To use this extension, put the class file where you think it is appropriate, but found by Yii, and then update your configuration:

return array(
 [...]
 'components'=>array(
    [...]
                    'clientScript' => array(
                        'class'=>'TimestampClientScript',
                ),
    [...]
  )
  [...]
);

If you already use other CClientScript replacements, modify TimestampClientScript to extend from your other CClientScript replacement.

The extension also supports script files with parameters (since 1.1). Example:

Yii::app()->clientScript->registerScriptFile(
        Yii::app()->request->baseUrl . '/js/shared/js/html5Forms.js',
        CClientScript::POS_HEAD,
        array(
                'data-webforms2-support' => 'date,validation,number',
                'data-lang' => $lang,
                'defer' => 'defer'
        ));

Operation

This extension determines the local path for the Url and if the local path exists, it will add a time stamp (encoded to make the key shorter).

So your HTML will contain references to local css and js files like this:

[html]
<link rel="stylesheet" type="text/css" href="/themes/mytheme/css/main.css?n2kncy">
3 0
5 followers
421 downloads
Yii Version: 1.1
License: MIT
Category: Caching
Developed by: le_top
Created on: Jul 31, 2014
Last updated: 9 years ago

Downloads

show all

Related Extensions