Is there a way to force a browser cache refresh?

ngcortes
Kilo Contributor

Some of my client/UI scripts are stale whenever we deploy to production, breaking some of our data-filling automation. If there's an easy way to flush the user's browser cache through a simple script or some other mechanism, that would make deployments are lot smoother.

4 REPLIES 4

Rahul Shandily3
Giga Guru

Have you tried flushing cache when none of the users are logged into the system ?

Alternatively Users can try Ctrl+R to reload the page from Server.

 

Best Regards,

Rahul

Please mark the thread as Correct / Helpful if it resolved your query.

The issue is on the client side is the thing. I don't know exactly what happens under the hood, but client and UI scripts get saved to a user's browser, so any updates we've made to those script are ignored.

Our best solution right now is just telling users to clear their browser caches whenever we deploy a patch, but that's not ideal because some folks might miss the email, etc.

One potential solution I've considered is having a UI or client script that runs independently that refreshes the browser cache, but I'm not sure if there's a standard call to do that. I suppose there's something built into javascript that could refresh a browser cache.

Miguel Caldero3
Mega Expert

Either give the UI script a different name when making changes to it or when you call it do something like this

 

ScriptLoader.getScripts(('yourUIScriptname.jsdbx?'+ new Date()), function() {

.....

});

 

The above will force the browser to download the latest UI script code

 

Thanks,

 

Miguel

 

 

Pavani Ponnada
Kilo Contributor

Hello,

We can clear the cache by writing a simple UI script and by calling a script include with the  "gs.cacheFlush();" in it. Providing a sample code for reference.

 

Script Include:

clearCacheOnLoad: function()
{
if(!gs.hasRole('admin')){
gs.cacheFlush();
gs.info("cache cleared for non-admins");
}

},

UI Script code:

var ga = new GlideAjax('call script include with its name here');
ga.addParam('sysparm_name', 'clearCacheOnLoad');
ga.getXML();

 

Note: UI script runs every time a form loads in the instance.