Domanda

Non ho motivi legittimi per fare quello che sto cercando di spiegare. Ho un sito esistente dire abc.com che ha pagine regolari ecc tutto scritto in php. Ora vorrei AJAXify sito vale a dire quando un utente fa clic su un link, che dovrebbe prendere il collegamento mediante AJAX e sostituire il contenuto della pagina. Questa è la parte facile e posso raggiungerlo utilizzando jQuery ottenere la funzione.

Ora il problema viene quando l'utente segnalibri pagina. Posso utilizzare i tag hash per specificare se l'utente si trova in un'altra pagina, ma invece di usare JavaScript per andare a prendere ancora una volta la nuova pagina, è possibile prenderlo direttamente utilizzando PHP quando la pagina viene chiamata.

Potete per favore darmi uno schema su come realizzare quanto sopra. Questa funzionalità è simile a quello che Facebook ha.

Grazie per il vostro tempo.

È stato utile?

Soluzione

E 'un processo abbastanza semplice di (1) Analisi del tag hash, e (2) il caricamento del contenuto tramite Ajax come si farebbe normalmente.

Se si caricano più contenuto quando l'utente fa clic sulla pagina, basta essere sicuri di sempre modificare correttamente il tag hash per riflettere ciò che è sulla pagina.

Ecco un esempio veloce per giocare con. Fare clic su un nome e notare il tag hash. Il relativo Javascript assomiglia a questo:

// Go straight to content if it's in the hash.
$(document).ready(function(){
   load_story_from_hash();
});

// Call this function whenever user clicks on a hash link
function set_hash(hash){
   window.location.hash = hash;
   load_story_from_hash()
}

// Actually load content based on the hash in the URL
function load_story_from_hash(){

   var hash = window.location.hash;
   hash = hash.replace(/^#/, '');

   if (hash) {

      $('#post_container').load(hash+'.html', {}, function(){
         $.scrollTo('#post_container', 1000);
      });

   }

}

Altri suggerimenti

La risposta è no, non è possibile ottenere il valore del lato server URL hash. Vedi Come arrivare URL cancelletto (#) dal lato server .

Si dovrà ottenere il valore hash sul lato client e fare una richiesta supplementare.

jQuery La storia è la mia scelta preferita. Si può trovare qui: http://www.balupton.com/projects/jquery-history / forniscono il supporto cross browser, il legame con hash, hash sovraccarico, tutto il resto.

C'è anche un'estensione Ajax per esso chiamato jQuery Ajaxy, permettendo così di aggiornare facilmente la tua pagina web in una corretta applicazione Ajax, senza necessità di apportare modifiche lato server e rimanendo SEO e JS-Accessibile ai disabili: http://www.balupton.com/projects/jquery-ajaxy/

Questa è la soluzione scelta da tali siti come http://wbhomes.com.au/ http://www.balupton.com

Nel complesso sono entrambi ben documentati, supportate e ricco di funzionalità. Hanno vinto anche una domanda di taglie qui Come mostrare richieste Ajax in URL?

Si può usare uno di questi strumenti o rotolare il proprio. Utilizza window.location.hash insieme ad altri trucchi.

Ho scritto un articolo recente su questo problema esatto. L'articolo è in stile tutorial. Utilizzando l'evento di modifica hash, im che mostra come aggiungere parametri all'URL, che può innescare richieste Ajax con un numero infinito di parametri, quindi, a funzionare in maniera abbastanza scalabile.

È possibile trovare maggiori informazioni qui a http : //andresgallo.com/2012/06/08/ajaxifying-the-web-the-easy-way/

La parte I tratta come rispondere ai link hash, mentre la parte II spiega come inviare i dati nell'URL hash per una richiesta AJAX permettendo quindi di fare praticamente tutto quello che vuoi fuori dei tag hash nell'URL.

Il modo migliore per farlo è quello di avere uno index.php che carica tutte le altre pagine basate sulle parti URL dopo di esso. Per esempio:

http://www.example.com/index.php/reports / dipendenti / hoursWorked

In questo caso index.php verrà eseguito, si può vedere ciò che viene richiesto è rappresenta le ore lavorate rapporto, e caricare tali contenuti. Il problema è che, se index.php quindi carica tutti gli altri contenuti, dopo che l'utilizzo di AJAX, l'URL nel browser non cambierà mai.

Un modo per aggirare questo problema sarebbe quella di mettere un "Collegamento a questa pagina" su ogni pagina che contiene quella forma di URL per gli utenti di segnalibro.

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