javascript - Migliore approccio per il salvataggio automatico su cambio




php jquery (2)

Voglio rimuovere il pulsante "Salva" e salvare automaticamente le modifiche dal vivo.

Il modo in cui so che questo può essere fatto è usando la funzione OnChange.

Ricordando che l'applicazione Web verrà utilizzata da un numero elevato di persone, il numero di richieste al server raggiungerà molto probabilmente a un livello schiacciante in un periodo di tempo molto breve.

Qual è l'approccio migliore per il salvataggio automatico senza sovraccaricare / inviare così tante richieste al server?

Esistono due tipi di campi modificabili:

1- Campi semplici che avrebbero una piccola quantità di lettere / parole.

2- Aree di testo per grandi quantità di copie.


Personalmente, lo farei su un rimbalzo di dire mezzo secondo al secondo. Se un utente interrompe la digitazione per un determinato periodo di tempo, viene eseguito il salvataggio. È anche abbastanza semplice da ottenere:

var debounce = null;
$(document).ready(function() {
    $('.field').keydown(function() {
        clearTimeout(debounce);
        debounce = setTimeout(function(){
            // SAVE
        }, 500);
    });
});

Questa è una risposta non codice alla tua domanda.

Non c'è un buon modo per farlo. Puoi fare gli aggiornamenti in base alla quantità di parole X, oppure puoi renderlo ogni carattere, o anche ogni secondo. Il problema è che ci sono tonnellate di connessioni.

È una risorsa pesante e una larghezza di banda che richiede l'utilizzo di una connessione Internet ogni volta che si desidera salvare. Allora hai il problema di ciò che vuoi inviare al database?

Come controllate per vedere che cosa ha già il database? Ti rispondi semplicemente l'intera cosa?

Queste sono tutte domande a cui devi rispondere. Ma in sostanza è lo stesso di adesso ... eccetto che hai una sorta di codice (come ho detto cambio di carattere, cambiamento di parole, cambio di tempo) e poi spingo l'intero testo / campo. o solo quello che non ha nel database.

Quindi non c'è un buon modo per farlo. Se dovessi farlo, memorizzerei le informazioni localmente. Quindi diciamo una volta ogni 30 secondi, aggiornarlo e inviare solo i caratteri modificati al database.







autosave