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

    Problemi grande quantita' di dati php e ajax

    vi spiego il mio problema devo realizzare un sito che deve visualizzare una grande quantita' di dati in forma tabellare ( circa 10000 righe ) e non posso paginarli (per volere del committente ) , la chiamata alla pagina che costruisce la tabella e' fatta tramite ajax e l'html ricevuto viene inserito in un div , fin qui nulla di strano ma il problema e' che l'elaborazione si pianta lato client.

    c'e' un modo piu' efficente per effettuare il passaggio? in xml e elaborarlo poi con l'xslt tramite i javascript ?


    Grazie mille

  2. #2
    potrebbe anche darsi che per ogni record ci siano troppi dati da visualizzare e il browser in attesa dei dati da visualizzare appunto si pianta..come fai? ad esempio inserisci i dati in una stringa da visualzizare una alla volta? ad esempio

    Codice PHP:
    foreach ($rows as $row) {
      
    $linea "<div><span>".$row['ID']."</span><span>".$row['User']."</span><span>".$row['Income']."</span></div>";
      echo 
    $linea;


  3. #3
    No prima costruisco la stringa completa e poi facchio l'echo di tutto l'html generato

  4. #4
    appunto, la stringa completa potrebbe diventare tanto grossa da occupare l'intera memoria e mandare in crash il PC...sarebbe meglio un ciclo come ti ho fatto vedere per evitare questo enorme spreco di memoria, se pensi che ogni record oconterrà qualche chilobyte di dati...

  5. #5
    grazie mille ora provo

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Sono d'accordo a metà con il mister.

    E' vero quello che dice emulman riguardo al fatto che un intera stringa potrebbe essere troppo grossa, ma è anche vero che se i record sono tanti anche i cicli diventano troppi e il browser si pianterebbe sicuro.

    Secondo me puoi risolvere facendo una serie di chiamate a catena, in pratica fai una chiamata ajax passando come parametro l'indice di partenza.

    ti faccio un esempio:

    Fai una prima chiamata a

    get_dati.php?start_index=0

    La risposta conterra N record da te decisi, la funzione js che riceve i dati aggiorna la pagina e una volta fatto fa una seconda chiamata ajax passando come start_index 0+N, e cosi di seguito finchè non ricevi una risposta con numero di record < N (sarà la coda dei record).

    Anche questo metodo ha le sue pecchè, visto che:

    1. per vedere l'ultimo record dovrai aspettare N chiamate ajax
    2. Farai N query anzichè una sola.

    I pro sono:
    1. Non si pianta il browser.
    2. Mostrando un tot di risultati alla volta dai un senso maggiore di sicurezza all'utente, che altrimenti ha l'impressione che si sia piantato tutto.

    ciao

  7. #7
    beh per evitare di sembrare che si sia tutto piantato si potrebbe utilizzare uno script javascript che visualizza una semplice animazione e la scritta ATTENDERE PREGO...

  8. #8
    si si, quello c'era gia' adesso ho modificato la classe che mi genera l'html e ho messo degli echo ad ogni riga ma nn cambia molto, s metto tutte le righe si impalla cmq ci mette un tempo sopra al minuto
    ti metto la funzione js che mi serve per inserire la pagina chiamata interna al div

    function apri(nomePagina){
    $("#loadAj").show();
    $.ajax({
    url: nomePagina,
    type: 'POST',
    dataType: 'html',
    error: function(){
    alert('Error');
    $("#loadAj").hide();
    },
    success: function(html){
    $("#ctr").html(html);
    $("#loadAj").hide();
    }
    });
    };

    possibile che sia questa?

  9. #9
    purtroppo non conosco il framework js che usi...

  10. #10
    il problema e' tutto qui
    $("#ctr").html(html);

    la lentezza e' qui

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.