The cache-busting works by appending an always-unique query string to the end of every file which is required. It makes use of RequireJS's urlArgs
config value; RequireJS takes care of appending it for you:
urlArgs: "bust=" + (new Date()).getTime()
The(new Date()).getTime()
part is just a simple way to get a unique string out of JavaScript. You could do some variation on Math.random()
, but using the number of milliseconds since the epoch guarantees uniqueness, for optimum cache-bustage.
I think Mr Burke is suggesting something like:
require.config({
baseUrl: '/base/path',
paths: {
'fileAlias': 'fileLikelyToChange?bust=' + (new Date()).getTime(),
'anotherFileAlias': 'anotherFileLikelyToChange?bust=' + (new Date()).getTime(),
'jQuery': 'jQuery'
},
});
So, instead of the ubiquitous urlArgs
cache-busting, you apply it specifically to each file which is likely to change; hence, excluding any libraries.
I haven't tested it, but I'd probably tidy it up to something like:
function bust(path) {
return path + '?bust=' + (new Date()).getTime();
}
require.config({
baseUrl: '/base/path',
paths: {
'fileAlias': bust('fileLikelyToChange'),
'anotherFileAlias': bust('anotherFileLikelyToChange'),
'jQuery': 'jQuery'
},
});