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

    Limiti per gli array con IE7 ???

    prefazione : pagina in cui carico un bel array in javascript.
    uso IE6, firefox, altri brws : OK caricamento, OK scorrimento di questo array (for (var i = 0; i < mioarray.length; i++))

    uso IE7 : quando arriva a mioarray.length si blocca, solo quando l'array supera credo i 6000-7000 elementi. Per array più piccoli no problem.

    Dunque, mi chiedo, cosa c'è che non va con gli array così grandi che cmq, sono sempre stati molto performanti ????????

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ho provato con un vettore di stringhe da 50 caratteri di un milione di elementi, e IE7 lo digerisce senza problemi
    Pietro

  3. #3
    Per rendere il codice più performante puoi fare così:
    for(i=0, arl=myArray.length; i!=arl; i++)

    in modo da calcolare il length ogni volta.
    Un altro approccio è questo:
    for(i=0, el; el=myArray[i]; i++)

    in modo che tu nel ciclo possa usare el al posto di myArray[i]

  4. #4
    Originariamente inviato da Mega69
    Per rendere il codice più performante puoi fare così:
    for(i=0, arl=myArray.length; i!=arl; i++)
    con la var davanti o crei variabili globali fastidiose (la i soprattutto) ed inutili


    Originariamente inviato da Mega69
    Un altro approccio è questo:
    for(i=0, el; el=myArray[i]; i++)
    in modo che tu nel ciclo possa usare el al posto di myArray[i]
    approccio potenzialmente errato dato che un array può contenere:
    1 - una stringa vuota (false)
    2 - un booleano (appunto false)
    3 - un numero pari a zero (false)
    4 - un valore nullo (false)
    5 - un valore undefined (false)

    quindi questo tipo di loop non è sicuro (non è detto che cicli tutti gli elementi)


    io rimarrei fedele a

    for(var i = 0, j = arr.length; i < j; i++)
    o per comodità
    for(var i = 0, j = arr.length, el; i < j || el = arr[i]; i++)
    per avere el dentro il ciclo al posto di arr[i]




    [edit]
    P.S. sulla velocità rispetto (vari i = 0; i < arr.length; i++) non ci metterei la mano sul fuoco:
    http://webreflection.blogspot.com/20...efull-for.html
    http://www.devpro.it/examples/loopsbench/ (<-- da evitare con PC non recenti)
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    questo è un esempio di file .PHP con javascript che mi dà questo problema.
    ------------------------------------------------------------------------
    <?php
    function caricaProva(){
    echo "<script>\n";
    echo "var myProvaId = new Array\n";
    echo "var myProvaId2 = new Array\n";
    echo "var myProvaDesc = new Array\n";
    echo "var myProvaDesc2 = new Array\n";
    for ($i=0; $i <= 10000; $i++){
    echo "myProvaId[".$i."] = 54\n";
    echo "myProvaId2[".$i."] = 54\n";
    echo "myProvaDesc[".$i."] = 'sdfsdf '\n";
    echo "myProvaDesc2[".$i."] = 'rewrwerew '\n";
    }
    echo "</script>\n";
    }

    caricaProva();

    echo "<form>";
    echo "<body onLoad=\"vediamoX()\">";
    echo "</body>";
    echo "</form>";

    ?>
    <script>
    function vediamoX(){
    alert(myProvaId.length)
    }
    </script>
    ------------------------------------------------------------------------

    con IE6 ok
    con IE7 ko

    avete idea dove sbaglio ?

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    che centra php con javascript?
    Pietro

  7. #7
    scusa, ma non si può scrivere codice javascript tramite PHP ????
    penso che 50000 righe di javascript fossero un po' pesanti da scorrerle tutte sul forum, no ????

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da rude_Fil
    scusa, ma non si può scrivere codice javascript tramite PHP ????
    penso che 50000 righe di javascript fossero un po' pesanti da scorrerle tutte sul forum, no ????
    Io lo dico per te Se scrivi in php (e i solerti moderatori lo passano ) avrai a dispozione molte aiuti; se mandi codice html con javascript, la percentuale di aiuti aumentano
    Pietro

  9. #9
    scusa, ma non si può scrivere codice javascript tramite PHP ????
    guarda che quello è un normalissimo loop fattibile anche tramite JavaScript ... a meno che tu non voglia assegnare dei valori presi dal PHP al JavaScript, ma anche in questo caso esistono almeno 2 modi migliori per farlo, serializzazione o JSON.

    Riguardo lo specifico problema deduco sia semplicemente colpa del layout che proponi, con un elemento body dentro una form (casomai sarà il contrario) ed un evento onload del body, interno alla form, con un codice client esterno al body (la funzione da richiamare).

    Prova ad usare l'evento onload della window e non del body

    Comunque se ti serve aiuto col JavaScript, in questo forum ti conviene mostrare l'output prodotto dai tuoi "esperimenti" in PHP e non il PHP stesso, poichè il PHP in questo caso con il JavaScript non c'entra un granchè ed ha un forum apposito
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  10. #10
    tutti professori ma con poca elasticità mentale....
    mah, cmq, è impossibile che sia un problema di layout ma di grandezza del vettore javascript...
    il problema sussiste, grazie ai professori intervenuti.

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.