Che cos'è una richiesta AJAX nascosta?
Ho notato un aumento dell'utilizzo delle richieste AJAX nascoste progettate per far sembrare che l'azione dell'utente si verifichi immediatamente. Farò riferimento a questo tipo di richiesta AJAX come non bloccante. È una richiesta AJAX fatta senza che l'utente sia consapevole del fatto che sta accadendo, viene eseguita in background e il suo funzionamento è silenzioso ( non vi è alcun dettaglio per indicare un completamento riuscito della chiamata AJAX ). L'obiettivo è far sembrare che l'operazione sia avvenuta immediatamente quando non è ancora terminata.
Ecco alcuni esempi di richiesta AJAX non bloccante;
- I clic dell'utente vengono eliminati in una raccolta di e-mail. Gli oggetti scompaiono immediatamente dalla loro casella di posta e possono continuare con altre operazioni. Nel frattempo, una richiesta AJAX sta elaborando la cancellazione degli elementi in background.
- L'utente compila un modulo per i nuovi record. Clic salva. Il nuovo elemento appare immediatamente nell'elenco. L'utente può continuare ad aggiungere nuovi record.
Per chiarire, ecco alcuni esempi di blocco della richiesta AJAX;
- I clic dell'utente vengono eliminati in una raccolta di e-mail. Viene visualizzato un cursore a clessidra. Viene effettuata la richiesta AJAX e quando risponde il cursore a clessidra viene disattivato. L'utente deve attendere un secondo per il completamento dell'operazione.
- L'utente compila un modulo per i nuovi record. Clic salva. Il modulo diventa grigio con l'animazione di un caricatore AJAX. Viene visualizzato un messaggio "I tuoi dati sono stati salvati" e il nuovo record viene visualizzato nell'elenco.
La differenza tra i due scenari precedenti è che una configurazione AJAX non bloccante non fornisce il feedback di una prestazione operativa e una configurazione AJAX bloccante.
Il rischio di richieste nascoste AJAX
Il rischio maggiore di questo stile di richiesta AJAX è che l'applicazione Web potrebbe trovarsi in uno stato completamente diverso quando la richiesta AJAX fallisce.
Ad esempio, un esempio non bloccante;
- L'utente seleziona un gruppo di e-mail. Fai clic sul pulsante Elimina. L'operazione sembra avvenire immediatamente (gli elementi scompaiono dall'elenco). L'utente quindi fa clic sul pulsante Scrivi e inizia a digitare una nuova e-mail. È in questo momento che il codice JavaScript rileva la richiesta AJAX non riuscita. Lo script potrebbe mostrare un messaggio di errore, ma al momento è davvero inutile.
In alternativa, un esempio di blocco;
- L'utente seleziona un gruppo di e-mail. Fai clic sul pulsante Elimina. Vede una clessidra, ma l'operazione non riesce. Ricevono un messaggio di errore che dice "errore. Blah blah blah". Vengono restituiti all'elenco di e-mail e hanno ancora le e-mail che volevano eliminare selezionate. Potrebbero tentare di eliminarli di nuovo.
Esistono anche altri rischi tecnici per l'esecuzione di richieste AJAX non bloccanti. L'utente potrebbe chiudere il browser, navigare su un altro sito Web e accedere a un'altra posizione nel Web corrente che rende insignificante il contesto di qualsiasi risposta di errore.
Allora perché sta diventando così popolare?
Facebook, Google, Microsoft, ecc. Ecc. Tutti questi grandi domini utilizzano sempre più richieste AJAX non bloccanti per far sembrare che le operazioni vengano eseguite all'istante. Ho anche visto un aumento degli editor di moduli che non hanno pulsanti di salvataggio o invio . Non appena lasci un campo o premi invio. Il valore è salvato Non è presente il tuo profilo è stato aggiornato il messaggio o il passaggio di salvataggio.
Le richieste AJAX non sono una certezza e non dovrebbero essere trattate come riuscite fino a quando non sono state completate, ma così tante applicazioni Web importanti funzionano in questo modo.
Questi siti Web che utilizzano chiamate AJAX non bloccanti per simulare applicazioni reattive corrono un rischio non necessario a costo di apparire velocemente?
È questo un modello progettuale che tutti dovremmo seguire per rimanere competitivi?