Are you sure that the browser returns a cached page? Normally browsers keep form field values and listbox selections when you press the back button.
Caching issues are always really hard to solve, because each browser type works slightly differently and each individual browsers may also vary in how they are configured to handle caching.
I recommend that you modify your scripts so as to return the current timestamp in the footer of the page. This will allow you to determine whether you are seeing a cached page, or one that was just served as a result of a new request from the browser.
Once you have this, start experimenting with different caching headers to see what works best for most browsers. There are lots of web resources discussing this subject. Here's one such article that I found by googling on "cache-control expires header": How to prevent caching in Internet Explorer.
Sent by Joe Goldsmith on 06/20/2006 10:33:34 AM:
In my app a user picks a vendor from a pull-down and is then transferred to a page to list the vendor's products. If a user presses the back button a cached page is presented with the chosen vendor in the drop down. This behavior nullifies the used from again choosing a vendor.
At the top of the pull-down page I entered response.expires=0 but the cached page is still presented. I also tried it at the bottom of the page with no luck. What is the procedure to prevent a page from caching please?