Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

github: comment will be remaining even if reload browser, why?

When I write a comment with github's issue page, I noticed that the comment body remains even if I reload the browser.

enter image description here

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?

like image 628
Kon Yuichi Avatar asked Aug 31 '17 14:08

Kon Yuichi


1 Answers

They are using SessionStorage to do this:

On Page Leave:

  1. select all of the input fields with .js-session-resumable as selector
  2. put {id, value} pair of inputs in an array
  3. put it in SessionStorage as session-resume:/current/page/path

On Page Load:

  1. check if there are any values with session-resume:/current/page/path key in SessionStorage
  2. 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.

like image 142
Hossein Moradi Avatar answered Sep 17 '22 11:09

Hossein Moradi