Commenti dinamici con ajax ========================== by triex Nell'era del web 2.0 ormai si DEVE prestare attenzione alla qualità del servizio che si vuole offrire. Aldilà di tutte le inutili pacchianerie, AJAX è in grado di migliorare notevolmente le prestazioni di un sito, senza nemmeno radicali stravolgimenti. Per capire cos'è AJAX e come funziona rimando a questa buona guida: http://javascript.html.it/guide/leggi/95/guida-ajax/ Quello che segue è l'applicazione delle funzioni lì descritte ai temi della più celebre piattaforma di blogging: Wordpress. L'effetto che si vuole ottenere è quello di un div contenente i commenti che viene richiamato quando si preme il link ai commenti, senza dover caricare una nuova pagina. All'interno della pagina index.php possiamo modificare il link dei commenti come segue: /?comments_popup= costruisce l'indirizzo della pagina da richiamare e restituisce una cosa del tipo: http://www.siteurl.com/?comments_popup=3 (the_ID restituisce l'ID del post di cui si richiedono i commenti). onclick="return caricaCommento(this.href, );" chiama la funzione che si occuperà di chiamare la pagina asincronamente. Vengono passati l'indirizzo e l'id. Notare che l'id in teoria è già compreso nell'indirizzo, per cui basterebbe una piccola modifica alla funzione, per recuperarlo. onkeypress="return this.onclick();" chiama la funzione quando viene premuto un tasto nel momento in cui il focus è su quel link. style="display: inline" indica che il link deve essere visibile. Verrà sostituito dal link "Nascondi" quando i commenti saranno stati caricati. id="mostra-" assegniamo un id univoco a questo link. E' una funzione di wordpress che restituisce un determinato testo a seconda che i commenti siano 0, 1 o più di uno. Notare che il link creato è "degradabile", ovvero non preclude la funzionalità del sito nel caso in cui Javascript non sia presente. Creiamo di seguito il link "Nascondi", che sarà invisibile finché non compariranno i commenti. Questo è un link fittizio in quanto non porta da nessuna parte, ma chiama soltanto la funzione apposita. style="display:none" fa in modo che non venga visualizzato. Ancora una ultima cosa: