If I change TTL to 20 minutes, will all browsers around the world which may have visited the site when TTL was set for 1 year TTL update so that the TTL would reset and load new files immediately?
In theory? No they won’t they have a TTL, there’s no reason for them to check before that. In practice? They may not wait a year, but they have no reason to refresh in 20 minutes.
Can you recommend a method available through Cloudflare that may force a browser to reload from the new CDN cache JS and XML files? Old versions of a JS solution sometimes stay in the browser cache, (especially since the setting was sooo long) and it would be quite helpful to have the JS update.
Use a query string if you’re using the default caching settings.
A potential client, or anyone visiting a site won’t be sent a special query string. They may just simply visit the site again, weeks later or even one day later if the JS has been updated recently and they will pull from their browser cache and it wont sync up with changes in the JS player which has a changing array of support XML files. So I’m asking if there is a way from the CDN to simply force visitors to download the latest files from the CDN or origin.
Cloudflare doesn’t cache HTML by default so if the HTML references a an asset with a new query string the client will indeed request the new asset because it’s a new asset. If you’ve cached the HTML then the client isn’t going to talk to anything so nothing has the ability to impact the behavior of a client which doesn’t interact with it CDN or otherwise.