2011-10-10 11 views
5

Possiedo alcuni jQuery che modificano gli elementi sulla pagina dopo che l'utente ha eseguito un'azione. Questi sono persistenti lato server quindi tutto sembra bello e fluido per l'utente.Funzionalità cache pulsante di avvio Opera

Quando l'utente fa clic fuori dal sito e poi preme il pulsante Indietro, tutti i browser eccetto Opera richiedono nuovamente la pagina, quindi le modifiche continuano a essere visualizzate per l'utente. Con Opera tuttavia il sito torna allo stato pre-jQuery (dal momento che non ha richiesto la pagina al server).

ho potuto fare qualcosa di brutto, come controllare il browser e aggiornare se Opera, ma ovviamente questo non è l'ideale.

Qualche idea di un metodo migliore per risolvere questo?

+0

Cool! Come utente di Opera è bello vedere che gli sviluppatori web lo considerano :) – alf

risposta

0
Non

uno a rispondere alla mia domanda, ma sembra che il seguente risolve il mio problema:

history.navigationMode = 'fast'; 

l'impostazione di questo significa che le pagine saranno loade d nello stato esatto in cui si trovavano quando hai lasciato la pagina, che è sostanzialmente quello che stavo cercando. Sembra essere un'impostazione solo dell'Opera, anche se sembra essere solo l'Opera che agisce in modo diverso.

Ho trovato l'informazione here.

0

Potresti forse usare un po 'di memoria locale HTML5 per mantenere queste modifiche lato client (per quegli utenti che hanno browser HTML5 compatibili) e degradare con garbo alle richieste del server per quelle che non lo fanno.

Dopo una rapida scoot intorno - Sembra che Opera ha iniziato LocalStorage supporto a Opera 10.5 (di nuovo nei primi mesi del 2010), penso che anche gli aggiornamenti automatici troppo, così la maggior parte del 2,7% di utenti che utilizzano Opera dovrebbe avere questa funzionalità .

Io suggerirei usando http://www.modernizr.com/ per verificare la presenza di funzionalità e allora forse memorizzare i risultati in un letterale oggetto JSON i risultati di quella in memoria locale (dovrebbe rendere più facile memorizzazione e il recupero!)

(HTML5 locale guida bagagli - http://php-html.net/tutorials/html5-local-storage-guide/)

0

Opera ha una certa euristica per determinare se una pagina ha bisogno di un "re-init" nella navigazione della cronologia. L'euristica include se la pagina sta ascoltando l'evento di scaricamento (perché non possiamo "annullare" qualsiasi cosa abbia fatto l'evento di scarico) e se il codice che causa la navigazione sia stato eseguito da un evento click (perché spesso gli script disabilitano i pulsanti e non sono facilmente reversibili modifiche allo stato della pagina). Se è possibile evitare l'attivazione dell'euristica (Keep It Simple), il problema dovrebbe andare via anche senza la funzione history.navigationMode.

Problemi correlati