When I write a comment with github's issue page, I noticed that the comment body remains even if I reload the browser.
I have checked localStorage, sessionStorage, cacheStorage, IndexedDB, cookie, but I found no instance of the sentence that I wrote.
Also, I have checked the network tab of Chrome Devtool, but I could not find any suspicious network traffic.
How does github.com achieve this recovery function?
They are using SessionStorage to do this:
On Page Leave:
- select all of the input fields with
.js-session-resumableas selector - put {id, value} pair of inputs in an array
- put it in
SessionStorageassession-resume:/current/page/path
On Page Load:
- check if there are any values with
session-resume:/current/page/pathkey inSessionStorage - if yes, update values of inputs and remove this record from
SessionStorage
Note: If you write a comment in a page (without submitting it) and go to another page, then you can see your comment saved in SessionStorage.
来源:https://stackoverflow.com/questions/45983975/github-comment-will-be-remaining-even-if-reload-browser-why
