Caching is indeed a nasty problem sometimes.
One way of ensuring that the right version is running is checking it out with a centrally stored version number.
I keep an ActionScript file which is included in my main app. This file holds the current version Number (As version.as does in Flex Classes). Every time I do a major build, the version number is augmented. Now, upon starting the application, I do a check in a database where I store the minimum required version number. All clients will be disabled if you change that version number, no matter what browser or cache they have!
Yeah, thats fine, and I would be no problem to check the version against the database.
But still, if its out of sync, then you have to put a message to the user:
"Please click shift+refresh to get the latest version"
Unless there is a better way?
I'm not a html guru so I can't give you advice on that.There are so many browsers and versions around that I wouldn't mind displaying such a message, if it ensures me that users get the latest version.
Maybe someone comes up with a better idea, let's see...
As far as I know, when the brower starts and automatically populates the tabs, those tabs are populated from cache.
So the best method here is to check the version.