Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Creazione coda

  1. #1

    Creazione coda

    Salve ho un problema , ho una funzione javascript con jquery e dajax che richiama se stessa un certo numero di volte in base ad un parametro passato via form e a quanti tag di un certo tipo trova nella pagina .Cioè ho il parametro via form , conto quanti tag ci sono e rieffettuo la funzione in base al numero di tag , riduco il numero passato via form riconto il numero di tag e cosi via.Come posso creare una coda per far sì che non sprechi troppe risorse

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Troppo vago, posta il codice.
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Eccolo:
    codice:
    function getData(tag, numero){	  
    
          $.ajax({
    
          type: "POST",    
          url: "/pagina.php",     
          data: "tag=" + tag + "&numero=" + numero,
          dataType: "json",
          success: function(msg)
          {	 
            if (msg['risposte'].length > 0){		
    									
    			for (i=0; i<msg['risposta'].length; i++){
    			   t = msg['risposta'][i];
    			   if (i < msg['risposta'].length -1) t +=',';
    			}
    			$("#area").append(t + ';\n');
    		}
    	
    		if (numero >0 ){
                           for (i=0; i<msg['tag'].length; i++){		   
                               timeoutID = window.setTimeout(getData, 1000 , msg['tag'][i], numero-1);        
                           }
    		
                    },
          error: function()
          {
            $("#area").append("Errore su " + tag+ "&numero=" + numero + "\n");
          }
        });
    }

  4. #4
    Nessuno può darmi indicazioni ? anche solo sommarie per capire come strutturare il tutto o una guida esauriente per la realizzazione delle code?

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    Dai un'occhiata a questa implementazione. Comunque più che le code penso che il problema sia la risposta che ottieni dalla richiesta ajax, probabilmente migliorando quella otterresti dei reali benefici in termini di efficienza e anche di semplicità nel codice lato client.

  6. #6
    La risposta di ajax è un array multidimensionale in formato json .....Penso che essendo ricorsiva sia un problema implementare una queue con il codice linkato perchèse fossero funzioni diverse le metteri in fila e finita una partirebbe un altra , così la funzione richiama se stessa n volte e bisognerebbe fare in modo che ogni nuova richiesta avvenisse quando non avrei risposte o che ne mancassero un numero predefinito....

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    si ho capito il tipo di risposta, ma penso che dovresti cambiare quella e di conseguenza ciò che fai nella onsuccess la coda di suo non fa miracoli. Usare un coda significa semplicemente lavorare su una struttura dati che consente in tempo costante (O(1) se implementata come si deve) le operazioni di estrazione e inserimento

    Tutto questo:
    codice:
    if (msg['risposte'].length > 0){		
    									
        for (i=0; i<msg['risposta'].length; i++){
    	t = msg['risposta'][i];
    	if (i < msg['risposta'].length -1) t +=',';
        }
        $("#area").append(t + ';\n');
    }
    potrebbe diventare così:
    codice:
    $("#area").append(msg['risposta'].join(",") + ';\n');
    Non che questo migliori l'efficienza, ma sicuramente la leggibilità del codice.

  8. #8
    Il problema è che di javascript sono un po' a 0 (per stare alti), ma mi domando se nel ciclo for della funzione che ho elenzato prima :

    codice:
    if (numero >0 ){
                           for (i=0; i<msg['tag'].length; i++){		   
                               timeoutID = window.setTimeout(getData, 1000 , msg['tag'][i], numero-1);        
                           }
    		
                    },
    questa , invece di richiamare se stessa mettesse tutto questo in una coda , migliorerei ? se si come posso fare a implementarla

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    636
    la coda non è javascript è algoritmi e strutture dati, tu non fai operazioni di inserimento ed estrazione da una struttura dati quindi la coda non serve a niente.

    Se 'numero' è un numero grande dovresti mantenere la connessione aperta tra client e server usando i socket, ma qui la faccenda si complica un bel po'.

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.