Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Gestire gli url con AJAX

    Salve a tutti sono un nuovo di questo forum e dopo aver cercato invano per molto tempo una soluzione al mio problema, ho deciso di chiedere a voi.

    Il mio problema sta che ho un sito in php e adesso volevo trasformarlo con ajax in un sito dinamico xo guardando alcune guide ho notato ke l'indirizzo non cambia e questo è un vero problema oltre che per il SEO che per l'utente stesso che non può salvare una pagina come preferite perchè verra riportato sempre alla home all'apertura di quest'ultima...

    inoltre ho notato che facebook o google+ non ricaricano la pagina ma la aggiornano solamente cioe: premendo su un link ke porterebbe ad una pagina diversa la barra blu della testata dove c'è scritto facebook o quella di google+ con i relativi bottoni rimane fissa e si carica solamente il nuovo contenuto, tutto questo avviene cambiando l'indirizzo da una pagina ad un altra!! come è possibile utilizzando AJAX????

    a questo punto vi chiedo a voi se esiste un modo alternativo ad ajax, o se c'è qualche metodo che non conosco in ajax o JS per gestire la barra degli indirizzi

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Ciao e benvenuto, quando posti qui sul forum non usare lo stile SMS (ke,xo,cmq,etc...) rende più difficoltoso la lettura e molti (compre il sottoscritto) non gradiscono (solo gli ) tornando a tuoi dubbi forse hai cercato male vedi qui se puoi toglierti alcuni dubbi, cerca anche con "ajax seo" (in Inglese)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Di solito in questi casi a ogni chiamata ajax si aggiorna l'URL con un nuovo sengalibro (location.hash = "#segnalibro"; ) e all'apertura della pagina si interpreta l'eventuale segnalibro con if (location.hash.length > 1) { faiQualcosa(location.hash); }. In questo modo l'utente ha la possibilità di memorizzare un indirizzo diverso per ogni "pagina" e inoltre potrà usare i pulsanti di navigazione del browser. Occhio che quello che vuoi fare non è semplicissimo.

  4. #4
    si scusami andrea sapevo gia di non scrivere sui forum come se fosse un SMS il problema forse è che messaggio troppo!! comunque sia grazie mille per le due risposte e dico che avevo gia provato la soluzione di carlomarx ma ho letto che i motori di ricerca non leggono un link dopo il carattere # ad esempio:

    se il mio link fosse "forum.html.it#newreply.php?s=&action=new" tutta la parte del link dopo il carattere # non verrebbe considerata e a questo punto non avrebbe senso andare a sviluppare algoritmi che andrebbero a gestire tutto questo manicomio

  5. #5
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non so come funzionano fb e google+. Ti dico che il problema dei motori di ricerca lo risolveresti facilmente così:

    codice:
    cliccami
    In questo modo il motore di ricerca vedrebbe un link reale ignorando la sua modifica dinamica da parte di javascript al click sullo stesso. Ovviamente in questo caso dovresti utilizzare anche un redirect con .htaccess che ti riporti alla pagina coi segnalibri nel caso qualcuno ti raggiunga tramite motore di ricerca… Complicato vero?

  6. #6
    Hmmm diciamo di si non è facilissimo, ma non è impossibile, ... devo studiarci un po su per capire bene il funzionamento tu saresti disposto a darmi qualche chiarimento oppure conosci qualche guida che mi darebbe una mano?

  7. #7
    codice:
    cliccami
    codice:
    href="newreply.php?s=&action=new"
    non capisco bene queste 2 cose non semplici!! XD href in html indica una pagina esistente mentre in questo caso indica solamente un url fasullo che poi viene processato da AJAX e viene visualizzata la nuova pagina? spero mi sono spiegato bene.

    mentre
    codice:
    onclick="this.href='#'+this.href;return true;"
    questo codice che cosa fa di preciso???

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    L'evento onclick modifica dinamicamente l'url da newreply.php?s=&action=new in #newreply.php?s=&action=new al click.
    Immagina che tutti gli url del tuo sito siano composti così:

    codice:
    link
    il motore di ricerca sicuramente indicizzerà la pagina www.tuosito.org/index.php/qualcosa perché la troverà tra i link della pagina principale. Immaginiamo che qualcuno raggiunga tale link da un motore di ricerca.
    Tu avrai installato un file .htaccess che sostituisce tutto ciò che sta dopo index.php in index.php?page=qualcosa (non ho scritto male: è un punto interrogativo e non un cancelletto!! poi capirai perché). Bene, al click sul link www.tuosito.org/index.php/qualcosa il server magicamente interpreterà la pagina come se fosse index.php?page=qualcosa. A questo punto la pagina index.php sarà composta così:
    • Se nell'url è presente il punto interrogativo, memorizzo in sessione il valore del parametro page e da index.php?page=qualcosa in cui mi trovo mando un replace alla pagina index.php#qualcosa (l'utente vedrà un replace da index.php/qualcosa a index.php#qualcosa).
    • Se nell'url non è presente il punto interrogativo carico la pagina normalmente


    Nel secondo caso mi comporterò così:

    • Controllo se è stato salvato in sessione un valore per il parametro page di cui sopra. Se sì carico il contenuto direttamente tramite php in fase di lettura, senza ajax e ne cancello l'informazione dalla sessione, in quanto il contenuto è già stato letto. Contemporaneamente dico a javascript di ignorare il segnalibro (tipo creo con php una variabile javascript di nome leggiSegnalibro=false).
    • Se javascript vede leggiSegnalibro impostata su true, dice ad ajax di leggere il segnalibro.


    E così via. Te l'ho detto, quello che vuoi fare è piuttosto complesso...

  9. #9
    Allora vediamo se ho capito bene
    in pratica il nostro file .htacces quando viene effettuata la richiesta di una pagina al nostro server, prima di ricercare la pagina richiesta prende l'url e lo manipola cosi che il motore di ricerca lo vede come link di una pagina fisica esistente mentre in realtà è una pagina creata da ajax mediante le variabili passate dall'url giusto? ecco bel metodo non semplice ma funzionante.

    quello che pero non capisco è: cosa scrivere dentro il file .htacces per manipolare l'url inviato e dove di preciso dovrei metterlo??

    e poi ad ajax hai arriva il link come:
    www.miosito.it/index.php?page=1
    oppure
    www.miosito.it/index.php#page=1 ??

    s=&threadid=871868pillola .htacces questa forse è una guida (non ho capito bene perche si chiama pillola) comunque fa al caso mio? forse l'hai già letta

  10. #10
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da cataDesign
    quello che pero non capisco è: cosa scrivere dentro il file .htacces per manipolare l'url inviato e dove di preciso dovrei metterlo??
    Devi metterlo nella stessa cartella del file index.php. Su come fare per costruirlo cerca in rete, troverai tutte le risposte. O altrimenti apri una discussione sul forum Apache di HTML.it. La guida non l'ho letta!

    Originariamente inviato da cataDesign
    e poi ad ajax hai arriva il link come:
    www.miosito.it/index.php?page=1
    oppure
    www.miosito.it/index.php#page=1 ??
    Casomai la seconda!! Ma se segui l'impostazione che ti ho dato io in realtà js vedrà l'url www.miosito.it/index.php#1 (senza page=).
    Ricorda che Javascript non sa mai nulla di quello che combina il server. Ma sa che se trova la variabile leggiSegnalibro=false vuol dire che il contenuto è stato già letto da php e che non deve far fare nulla ad ajax.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.