 <p>Options 1, 2, and 5 seems OK. I don't see how the 3rd option could work because the browser does not need to store changes in field values.</p> <p>So unless you go the <em>single-page-web-application</em> way, like AngularJS, and avoid your navigation problem by not navigating to another page, you need to deal with the browse cache <em>problem</em>. The user could also have clicked a bookmark which is different but similar to the back button problem.</p> <p>Additionally, not a very strong argument, but if you look at Stack Overflow you can see it uses <code>Cache-Control</code> and ajax requests.</p>