Domanda

Eseguo un gioco basato su browser all'indirizzo www.darknovagames.com. Di recente, ho lavorato sulla riformattazione del sito con CSS, cercando di ottenere la verifica di tutte le sue pagine secondo lo standard HTML.

Ho giocato con questa idea di avere il menu di navigazione sulla sinistra di AJAX nelle pagine (piuttosto che portare l'utente in una pagina separata ogni volta, richiedendo un ricaricamento del titolo e della barra di navigazione, che non cambiano quasi mai ) e so che se lo faccio, probabilmente romperò i pulsanti Avanti / Indietro nel browser. La mia domanda suppongo sia: devo andare avanti e AJAX il sito, richiedendo così all'utente di utilizzare la navigazione del sito per giocare, o dovrei lasciare il sito così com'è attualmente e utilizzare collegamenti ipertestuali standard e cose per la navigazione?

Il motivo per cui chiedo suppongo sia che ho creato un sistema di forum nel sito, e molte volte vorrei collegare un argomento specifico all'interno dei forum.

Sono aperto anche a suggerimenti. Esiste un modo standard (preferibilmente senza cornici tradizionali) per ricaricare solo l'area del corpo del sito, pur modificando l'URL in modo che gli utenti possano aggiungere segnalibri e inoltrare / tornare indietro, ecc.? Ciò potrebbe potenzialmente risolvere anche il mio problema. Sto solo chiedendo la soluzione migliore qui, non una risposta a una domanda specifica. ^ _ ^

Grazie

È stato utile?

Soluzione

Se hai intenzione di abilitare AJAX, non farlo a spese di avere URL accessibili per ogni pagina significativa del tuo sito. Questa è la spina dorsale di un sito navigabile che le persone possono utilizzare.

Quando trasferisci tutte le tue funzionalità nelle chiamate e nei callback AJAX, fondamentalmente stai forzando i tuoi utenti in un unico percorso per accedere alle funzionalità e ai contenuti che desiderano - il che è totalmente contro il funzionamento del web. Le persone si affidano alla barra degli indirizzi e al pulsante Indietro. Se sostituisci tutti i tuoi collegamenti in modo che il tuo sito sia essenzialmente una singola pagina che si aggiorna solo tramite AJAX, stai limitando la capacità dei tuoi utenti di navigare nel tuo sito e trovare ciò di cui hanno bisogno. Impedisce inoltre ai tuoi utenti di condividere ciò che trovano (cosa che fa parte del punto, giusto?).

Pensa alla mappa mentale di un utente del tuo sito. Se sanno di essere entrati nella home page, sono andati a cercare qualcosa, poi sono atterrati su una pagina di giochi, quindi hanno iniziato a giocare a un gioco particolare, ovvero quattro distinte unità di azione che l'utente ha intrapreso. Potrebbero aver fatto alcune altre azioni più piccole e insignificanti su ciascuna di queste pagine, ma queste sono le unità principali. Quando fanno clic sul pulsante Indietro, dovrebbero aspettarsi di tornare indietro attraverso il percorso in cui sono entrati. Se stai caricando tutte queste pagine tramite chiamate AJAX, stai fornendo un sito la cui funzionalità è in contrasto con ciò che l'utente si aspetta.

Suddividi il tuo sito in ogni funzione significativa (ad es. ricerca, home, profili, giochi - sarà dettato da ciò che riguarda il tuo sito). Ovunque ti colleghi a queste pagine, fallo tramite un normale link e un URL statico.

AJAX va bene. Ma la sua arte è sapere quando usarlo e quando non farlo. Se segui il modello che ho delineato sopra, i tuoi utenti lo apprezzeranno.

Altri suggerimenti

Usa ajax per le parti della pagina che devono essere aggiornate, non per tutto. Per questo dovresti usare i template.

Se desideri comunque conservare il pulsante Indietro per i vari cambiamenti di stato nella pagina, combinali con # achor per modificare l'URL (senza forzare il browser a emettere un altro GET).

Ad esempio, gmail è simile al seguente:

mail.google.com/#inbox/message-1234

tutto oltre il # è stato un cambio di stato della pagina che è avvenuto tramite Ajax. Se premo Indietro, vado di nuovo nella posta in arrivo (di nuovo, senza un altro browser RICEVUTO)

Guarda reallysimplehistory . Il wiki non è stato aggiornato per 10 mesi, ma ero solo all'Ajax Experience 2008 e ho visto un presentazione di Brian Dillard su di esso. Dice che il codice 0.8 è sul suo disco rigido. Speriamo che sarà scaricabile presto.

Un'altra soluzione:

Paginazione AJAX & amp; Pulsante Indietro

Questo sembra essere il migliore là fuori, funziona con JQuery & amp; Mootools.

Esistono numerosi modi per risolvere questo problema usando tecniche Javascript funky, che spesso coinvolgono iframe, ma penso che in questa situazione sia necessario chiedersi perché stai usando AJAX. In realtà renderà il sito più facile da usare per l'utente? Mi sembra che lo stai usando perché pensi che sia bello (che di per sé non è sempre una brutta cosa) non perché aggiungerà effettivamente valore ai tuoi visitatori. Da qualsiasi sito Web normale, i normali documenti con collegamento ipertestuale sono quasi sempre la cosa giusta per la navigazione principale. È quello che la gente si aspetta e non consiglierei di andare in giro a infrangere quelle aspettative sulla base di una tecnologia sofisticata.

AJAX è fantastico e ti permette di fare molte cose fantastiche, cambiare la navigazione di un sito web non è una di queste.

Ben fatto per aver risolto questo problema, ci sono molti siti là fuori che vanno avanti con AJAX e non ci pensano nemmeno!

Prova questo semplice & amp; leggero PathJS lib. Permette di legare gli ascoltatori direttamente alle ancore.

Esempio:

Path.map("#/page").to(function(){
    alert('page!');
});

AJAX non è la soluzione migliore per la navigazione esattamente per il motivo che descrivi. Il successo per ricaricare l'intestazione e la barra di navigazione è minimo rispetto alla seccatura di interrompere l'interfaccia utente di navigazione del browser.

Un esempio più appropriato di AJAX sarebbe quello di consentire agli utenti di giocare nella finestra principale mentre potevano sfogliare un elenco di altri contenuti in un riquadro di navigazione. È possibile caricare ulteriori elementi nel riquadro di navigazione tramite AJAX senza disturbare il gameplay.

I & # 8217; d stick con semplici collegamenti ipertestuali. I mobili della tua pagina non dovrebbero rappresentare una grande porzione dell'HTML, quindi non è una grande vittoria escludendolo dalle richieste di pagine. Rendere indirizzabile ogni risorsa (ovvero un URL per ogni bit di contenuto a cui un utente potrebbe essere interessato) è una caratteristica chiave del design del web. Significa che la memorizzazione nella cache può funzionare e che gli utenti possono condividere i segnalibri. Fa funzionare Google, così come i siti di social bookmarking.

Ritardare un paio di byte HTML dalle successive modifiche alla pagina non è valsa la pena, secondo me.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top