What Applet lifecycle methods are you using in your program?
The first time the user enters the page init() is called, then start(). Any time the user leaves the page, stop() is called. If the user returns to the page, only start() by itself is called. At some point destroy() is called to get rid of the applet, like if the web browser is closed, or the JVM runs low on memory, etc.
The problem is that different browsers (and browser versions) handle refresh differently - some browsers just call stop() and start(), some completely unload the applet and do a full stop(), destroy(), and init(), start() on a new instance.
You'll have to
test it out and see what combination works best in your situation.