Have a revision
field in the browser. Also, have a saved_revision
field. When document saving begins, your code memorizes the current revision
and when saving is complete, it bumps saved_revision
up to that value. Every time the user changed something, revision
increments by one. For checking whether all changes are saved, check whether revision == saved_revision
. Something like this:
var revision = 0
var saved_revision = 0
function handle_keypress() {
revision++
update_document_saved_display()
/* ... */
}
function save() {
var saving_rev = revision
upload_version(serializeDocument(), function(status) {
if (status === 'ok') {
saved_revision = saving_rev
update_document_saved_display()
}
})
}