I fixed my service worker configuration of my SPA site and now it's not caching the index.html file. The problem is what can I do with my anonymous old \ existing visitors that already have the old index.html file as part of they service worker cache?
I can not tell them to clear cache or do manual refresh because I don't know them. From time to time they are calling to my office and i explain to them what to do but I am sure that lot's of visitors not calling me and can not use my new release because of that problem.
Again, I don't have problems with visitors that coming to my site since the fix i did to the service worker configuration. I have a problem with visitors that have my old index.html before my fix.
I'm using NGINX and ReactJS.
you need to add some sort of check against the cached assets to see if they need to be updated.
I use different techniques depending on the application.
One is to make a HEAD request and compare the last updated time against the cached value. If it has been updated on the server since it was cache I replace it.
I may also add some sort of time to live value to IndexedDB that corresponds to the cached asset or data. When that time expires I trigger an update.
There is no one answer fits all for this. Cache invalidation can be a complex topic and you need to try different techniques and use what works for the data or asset and within your application's use cases, etc.
Also consider how to handle offline and authentication, etc. See even more layers of complexity.