+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 4 su 4

[AJAX] Implementare Likes stile facebook

  1. #1
    Akuma non è in linea Novello
    Salve a tutti, scrivo qui perchè in passato ho avuto ottime dritte su come procedere.
    Come al solito, mi vengono in mente le idee ma non so da dove partire

    Ho una lista di articoli, scritti da vari utenti che vengono listati nella home page.
    Ogni articolo viene visualizzato con i primi 300 caratteri e con il "read more" finale
    che porta alla visualizzazione dell'articolo intero.
    Fin qui nulla di eccezionale.

    Ora:
    Vorrei implementarre una funzione "like" proprietaria, come facebook insomma.
    Potrei aggiornare un campo LikeCounter per quell'articolo con php..
    ma questo vorrebbe dire ricaricare la pagina ad ogni click!

    Facebook, Google e youtube invece come fanno?!
    Cioè: come fanno ad assegnare un like IMMEDIATAMENTE senza ricaricare la pagina?
    che linguaggio usano?
    Avete pezzetti di codice?

  2. #2
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    E'sufficiente un uso accorto di Ajax per una cosa del genere.

    Innanzitutto basta predisporre il db con la colonna likeCounter che hai immaginato.
    Quindi si può preparare uno scriptino php minimale (ma con controlli opportuni per evitare che venga richiamato a piacere da chiunque) che non fa altro che aggiornare il contatore (update tabella set likeCounter=likeCounter+1 where idArticolo=xxx o similare).

    Fatto questo, il click sul pulsante non farà altro che far partire una richiesta ajax verso lo script interessato. La risposta dello script potrebbe consistere nel codice da inserire nella pagina che va a sostituirsi al conteggio attuale.

    Questo ti da un meccanismo di base. Evitare "furberie" con i click può invece rivelarsi un po'più complicato.
    Di base andrebbe almeno ristretto ad 1 il numero di click provenienti da un singolo ip entro un certo lasso di tempo (alternativamente almeno all'interno della stessa sessione, ma questa è una soluzione molto più debole), poi dovresti fare in modo di essere certo che lo script sia stato invocato dal pulsante apposito e non sia semplicemente una richiesta get verso lo script stesso (si può arginare un po' facendo in modo che la richiesta sia in post e che comprenda paramentri hidden, oppure che la richiesta transiti per una pagina intermedia che introduce un parametro hidden di "autenticazione" e che poi redirige allo script vero e proprio)..

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

  3. #3
    Akuma non è in linea Novello
    Quote Originariamente inviato da bottomap Visualizza il messaggio
    Fatto questo, il click sul pulsante non farà altro che far partire una richiesta ajax verso lo script interessato. La risposta dello script potrebbe consistere nel codice da inserire nella pagina che va a sostituirsi al conteggio attuale.
    Potresti approfondire un pò questoi concetto?
    in mattinata ho cercato su google ed ho trovato molti siti web, come dicevi tu..
    ma nulla che mi chiarisse questa cosa...

    Insomma .."percepisco" che non è la cosa piu difficile del mondo da implementare,
    ma non riesco comunque a farlo

    Per quanto riguarda le furberie..darò la possibilità di fare +1 solo a chi è loggato.
    Il codice poi controllare se all'id del post X l'id utente Y ha già assegnato un like o meno.
    Dovrebbe bastare!

  4. #4
    L'avatar di bottomap
    bottomap non è in linea Amanuense
    Ciao,

    Per approfondire Ajax direi che la maniera migliore è cominciare a sperimentare e ad utilizzarlo. Farti un corso anche breve riempirebbe ben più di qualche decina di post...

    Aiuta molto conoscere bene l'html ed il javascript (ajax non è altro che javascript in fondo), per il resto non è nient'altro che una richiesta asincrona... viene fatta partire dal motore javascript (quindi parte lato client) ed è una richiesta come tutte le altre (get, post) che normalmente fai durante la navigazione.

    L'unica differenza è appunto rappresentata dal fatto che non influisce sulla navigazione. La richiesta viene spedita (senza che avvenga un cambio di pagina - solitamente si lega ad un handler di evento di un elemento della pagina... un button ad esempio) e, quando il server ha pronta la risposta, il client la riceve (una specifica function javascript viene in genere impostata prima della richiesta e viene eseguita automaticamente quando il client riceve la risposta).

    La rete abbonda di materiale, visto che è una tecnica estremamente diffusa da un po'di anni a questa parte... esistono anche framework già pronti (jQuery è uno dei migliori, ma ce ne sono altri) che possono semplificare notevolmente il lavoro.
    In generale comunque, visto che si deve cambiare dinamicamente la pagina lato client, è opportuno conoscere javascript ed il DOM (Document Object Model), visto che poi è con il DOM della pagina che si va ad interagire.

    Ciaociao
    ℹ️ Leggi di più su bottomap ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Implementare libreria c#
    Da dvdan nel forum Delphi
    Risposte: 2
    Ultimo Post: 12-04-2013, 10:31
  2. Risolto: [JAVASCRIPT][AJAX][PHP]funzione onchange e ajax
    Da gatto76 nel forum HTML, CSS e JavaScript
    Risposte: 1
    Ultimo Post: 28-03-2012, 19:09
  3. Una chat stile facebook
    Da martin nel forum ASP 3, ASP .Net
    Risposte: 0
    Ultimo Post: 01-04-2010, 17:36
  4. Implementare carrello con asp.net 2.0
    Da sanfra nel forum ASP 3, ASP .Net
    Risposte: 1
    Ultimo Post: 05-08-2008, 20:34
  5. Implementare Ajax nelle pagine ASP.NET 2.0
    Da sanfra nel forum ASP 3, ASP .Net
    Risposte: 2
    Ultimo Post: 19-05-2008, 19:06