I have an ASP.NET application - one part of the system contains quite a lengthy FormView, used for creating or updating jobs on the system. One issue that our customer is concerned about is potential data loss - I.e the user making changes on the form, and forgetting to click 'Save'. We have explained that the web is inherently stateless which makes it difficult, however this remains a big concern.

The obvious 'solution' is posting back every time a value is changed, but even with an UpdatePanel it is very slow and the user loses their focused column. We were also looking at capturing any links and giving the user a prompt to say they haven't saved, but it leaves a lot of variables such as them closing their browser down. 

What I've thought is that we could build up a JSON string and use jQuery to use AJAX to post to another page, and either save the changes to the db or persist them in their session til they click Save, and always warn them of unsaved changes.

Does this sound sensible or am I missing anything obvious? There's lots of apps online that save automatically, what methods do they use?