Il client vuole che il pulsante Indietro del browser funzioni su un sito Web che effettua chiamate AJAX

1

Attualmente sto lavorando con il sito web di un cliente in cui stiamo usando le chiamate ajax per mostrare il contenuto delle pagine, lo stiamo facendo in un singolo div e ovviamente non ti sposti dall'indice. Il mio cliente vuole che il pulsante back del browser funzioni, ma dal momento che non stai passando a una pagina diversa o altro, non penso che sia effettivamente possibile, vero? Come posso spiegare il mio cliente in un modo semplice?

L'unico modo per fare ciò che vuole è con le transizioni di pagina, ma questo significa ricominciare da quella sezione del sito web e usare il tempo che non abbiamo.

    
posta Jose 19.05.2016 - 06:14
fonte

1 risposta

4

My client wants the browser's back button to work, but since you're not moving to a different page or anything, I don't think that's actually possible, is it?

No, è certamente possibile.

Quando navighi all'interno della tua app, devi modificare window.location.hash o usare window.history.pushState . Questo creerà punti nella cronologia del browser che è possibile ripristinare senza aggiornare la pagina.

Quindi devi ascoltare gli eventi onhashchange o onpopstate per rilevare quando l'utente ha premuto il pulsante Indietro / Avanti. Hai preso le informazioni memorizzate nella cronologia o nello stato e aggiorna la tua applicazione per mostrare ciò che stavi mostrando in quel momento.

Ma sinceramente, se non hai scritto la tua app per essere in grado di farlo dall'inizio, probabilmente sarà un vero e proprio riadattamento della tua app ora. Questo funziona naturalmente con alcuni progetti di app, ma altri progetti di app saranno quasi impossibili da realizzare.

Il corretto supporto del pulsante Indietro è abbastanza prevedibile dalle applicazioni client oggi. Se non lo supportate, o dite al vostro cliente che non potete farlo, non si rifletterà molto bene su di voi. Se lo fai funzionare o meno per questo cliente, impara come farlo per i progetti futuri.

    
risposta data 19.05.2016 - 08:22
fonte

Leggi altre domande sui tag