Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776

    Gestire varie petizioni Ajax multiple, tenere in considerazione solo l'ultima

    Ciao a tutti,

    sto facendo dei test con il sito web che sto creando.

    Ho una mappa di google; cliccando sulla mappa tramite ajax faccio una petizione al MIO server(non a google), passando la coordinata geografica del click sulla mappa; il server mi restituisce tutte le coordinate dei punti che trovano in un raggio d'azione stabilito dall'utente(JSON). Oltre a quello mi restituisce anche il nome, categoria, id.
    Una volta che il client riceve i dati richiesti(riceve il risultato della richiesta ajax), tramite javascript riporto tutti i punti (markers) sulla mappa che sta visualizzando il cliente in locale.

    Visto che sto sviluppando in localhost ho voluto provare a simulare una connessione molto lenta (5Kb/sec), ho impostato questa velocità sia per il navigatore che per il server MySql.

    Il mio dubbio è, dal momento che ogni volta che l'utente clicca sulla mappa, arriva una pertizione al server, il server la tratterà e risponderà. C'e' modo di bloccare le richieste e le risposte che non sono state ancora inviate/ricevute?

    Perché, con questa velocità, se clicco 10 volte rapidamente sulla mappa, prima di trattare l'ultima petizione(che diciamo dovrebbe essere quella che interessa all'utente) devono "passare" le altre 9 e tutto si rallenta drasticamente.

    ....dovrei trovare il modo di trattare solo l'ultima petizione e non anche le altre sia lato server ma soprattutto lato client, anche perché le richieste sono molto più veloci delle risposte che riceverà il client stesso!


    Grazie,
    Roberto

  2. #2
    Una petizione?

    scusa non ho resistito.

    a 5Kb/sec non ci naviga nessuno neanche sotto 3G, mi sembra un tantino esagerato. Poi lato server non puoi bloccare nulla, dovresti farlo lato javascript, nel senso che o riesci a cancellare la richiesta ajax in corso prima di lanciare la nuova oppure tieni conto solo dell'ultima azione che hai richiesto. ma per questo dovresti chiedere al javascript piuttosto che qui.

    Oppure te ne freghi e speri che anche in Italia prima o poi arrivi la banda larga
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    Una petizione?

    scusa non ho resistito.

    a 5Kb/sec non ci naviga nessuno neanche sotto 3G, mi sembra un tantino esagerato.
    In effetti ho esagerato un tantino ;-), l'ho alzata a a 50Kb/sec.
    Ho fatto anche delle prove con un Samnsung dei tempi di "Carlo Cudega", è lento in rete locale, dandogli tutta la larghezza di banda possibile. È più veloce la connessione a 5Kb/sec del computer che questo Samnsung su rete wifi, ormai penso che comunque non lo usi più nessuno un modello così vecchio!

    Poi lato server non puoi bloccare nulla, dovresti farlo lato javascript, nel senso che o riesci a cancellare la richiesta ajax in corso prima di lanciare la nuova oppure tieni conto solo dell'ultima azione che hai richiesto. ma per questo dovresti chiedere al javascript piuttosto che qui.
    Ho riflettuto un po sulla cosa e pensavo di generare un contatore lato javascript, inviare la petizione con questo valore, il server invia la risposta con il valore del contatore che ha ricevuto; una volta che la funzione "success" riceve la risposta dal server, la tratta solo se il valore del contatore "locale" coincide con il valore ricevuto.

    Il problema è che dovrei modificare un po' la struttura del programma, sia lato javascript che php.

    Secondo te c'e' un modo più semplice e diretto senza mettere di mezzo php?
    ...in questo caso mi sposterò nella sessione Javascript


    Oppure te ne freghi e speri che anche in Italia prima o poi arrivi la banda larga
    Fortunatamente, "connessioni parlando", non vivo in Italia; almeno le connessioni fisse, nello stato in cui vivo, sono un po' più veloci rispetto all'italia e più economiche...

    Grazie,
    Roberto

  4. #4
    ma bloccare l'onclick sulla mappa fino a che la precedente richiesta ajax non è stata completata no?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    776
    Quote Originariamente inviata da Santino83_02 Visualizza il messaggio
    ma bloccare l'onclick sulla mappa fino a che la precedente richiesta ajax non è stata completata no?
    In effetti hai ragione, è più pratico e più rapido, grazie!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.