@@ -35,10 +35,16 @@ document.addEventListener("DOMContentLoaded", function(e) {
3535 visualVerseEditorInitializeLoad ( ) ;
3636
3737 navigationNewPassage ( ) ;
38-
39- window . addEventListener ( "unload" , function ( event ) {
40- oneverseEditorForceSaveVerse ( ) ;
41- } ) ;
38+
39+ document . addEventListener ( "visibilitychange" , ( event ) => {
40+ if ( document . visibilityState == "hidden" ) {
41+ oneverseUpdateExecute ( true )
42+ }
43+ } )
44+
45+ window . addEventListener ( "pagehide" , ( event ) => {
46+ oneverseUpdateExecute ( true )
47+ } )
4248
4349 oneverseBindUnselectable ( ) ;
4450
@@ -1121,7 +1127,7 @@ function oneverseCoordinatingTimeout ()
11211127 }
11221128 else if ( oneverseUpdateTrigger ) {
11231129 oneverseUpdateTrigger = false ;
1124- oneverseUpdateExecute ( ) ;
1130+ oneverseUpdateExecute ( false ) ;
11251131 }
11261132 else if ( oneverseReloadNonEditableFlag ) {
11271133 oneverseReloadNonEditableFlag = false ;
@@ -1161,7 +1167,7 @@ var editorHtmlAtStartOfUpdate = null;
11611167var useShadowQuill = false ;
11621168
11631169
1164- function oneverseUpdateExecute ( )
1170+ function oneverseUpdateExecute ( synchronous )
11651171{
11661172 // Determine whether the conditions for an editor update are all met.
11671173 var goodToGo = true ;
@@ -1203,6 +1209,7 @@ function oneverseUpdateExecute ()
12031209 method : "POST" ,
12041210 headers : { "Content-Type" : "application/x-www-form-urlencoded" } ,
12051211 body : new URLSearchParams ( [ [ "bible" , oneverseBible ] , [ "book" , oneverseBook ] , [ "chapter" , oneverseChapter ] , [ "verse" , oneverseVerseLoaded ] , [ "loaded" , encodedLoadedHtml ] , [ "edited" , encodedEditedHtml ] , [ "checksum1" , checksum1 ] , [ "checksum2" , checksum2 ] , [ "id" , verseEditorUniqueID ] ] ) . toString ( ) ,
1212+ keepalive : synchronous , // Optionally make call synchronous.
12061213 } )
12071214 . then ( ( response ) => {
12081215 if ( ! response . ok ) {
0 commit comments