Why are HTML forms sometimes cleared when clicking on the browser back button

前端 未结 2 1946
遇见更好的自我
遇见更好的自我 2020-12-29 08:51

I am sure everybody knows that behaviour. You fill in a form on the web, and you submit it. After the submission you recognize that you filled in some wrong data. So, you cl

相关标签:
2条回答
  • 2020-12-29 09:18

    Its a browser issue. Browsers behave differently when the back button is clicked. This question was asked before here Losing form data when clicking the back button on browser

    0 讨论(0)
  • 2020-12-29 09:26

    I can't provide the definitive answer for all scenarios.

    As a web developer, here's the rule I generally follow for sites I develop, to accomplish the goal of not letting the user lose data:

    • Disable all caching (via HTTP headers) on the page you want retained.
    • Capture all data into session (or some other temporary storage) when the form is submitted.
    • If the user navigates backwards, the browser requests a new version of the page (because you set it to never cache).
    • The page has logic to look to the session/database/wherever and repopulates all the fields based on the last input state. If there were dynamic inputs on the page, you should have enough data to recreate them.
    • Once the process is finished, use a POST/Redirect/GET pattern to clear the session data and make it difficult for the user to go back to the original page.

    Some answers i found on the internet / stackoverflow:
    1. on https connections, forms are always cleared
    2. when using dynamic websites with sessions, forms are always cleared

    I believe #1 varies by browser/security settings/scenario.

    Assumption #2 is certainly not true in all cases (the pattern I just described leverages session and dynamic forms).

    0 讨论(0)
提交回复
热议问题