Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Reale_Augello
    Guest

    Script che rallenta il browser

    Salve a tutti,

    ho implementato in JavaScript l'algoritmo di Vogel, che mi consente di trovare una soluzione al problema del trasporto (ricerca operativa). Facendo dei test ho notato che con problemi che riguardano poche fabbriche e pochi depositi, il mio script funziona più che bene, mentre se vado oltre le 3 fabbriche/depositi, mi viene visualizzato questo messaggio:



    E ovviamente la soluzione non viene visualizzata...
    Da cosa potrebbe dipendere ? Qualche ciclo che non si chiude ?
    O cos'altro ?

    Lo script lo potete vedere in azione qui:

    http://www.maiueb.it/forumhtmlit/angolonordovest3.htm

    Davvero non so che pesci pigliare...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ho dato una veloce occhiata allo script.
    E` molto lungo, per cui non sono riuscito a guardarlo tutto, ma ho notato un paio di cose che non mi piacciono.

    1. C'e` una variabile soluzione ed una funzione Soluzione. In qualche browser (non case-sensitive, tipo IE - qualche versione) questo potrebbe indicare lo stesso oggetto ...

    2. definisci una funzione dentro un'altra:

    function Vogel(f) {
    var maxinriga=false;
    var maxincolonna=false;
    var indicemassimo=0;
    var posminimo=0;
    var sol="";

    function TrovaMinimo(v) { // trova la posizione del minimo all'interno di un vettore
    var m=0;

    In JS questo e` vietato.

    Altre cose che potrebbero darti il problema (ma non ho verificato se ce ne sono nel tuo script):
    - funzioni ricorsive (non sempre si possono fare in JS)
    - loop troppo lunghi (ma forse questo non viene neppure segnalato)

    Prova a vedere e ripensare alla tua funzione.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Reale_Augello
    Guest

    Grazie...

    ... per le dritte Mich_, ma purtroppo il problema persiste...

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Reale,

    Non sei un pivellino (ho avuto modo di apprezzare i tuoi interventi), per cui mi trovo in difficolta` a darti consigli; tuttavia i soliti trucchi del mestiere ti dovrebbero aiutare a trovare l'inghippo:
    - sezionare bene il programma
    - usare degli alert in posizione strategica (oppure scrivere nello status o nel titolo)
    - controllare l'uso delle variabili
    - varificare gli if e i loop

    Buon lavoro.
    Ciao
    Michele

    PS. ma quel Vogel non ha nulla a che vedere con Augello (ambedue vogliono dire uccello in lingue differenti)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ueh Reale!

    wow l'algoritmo di Vogel!!! :metallica ... mai sentito prima

    hai scritto parecchio codice amico... e purtroppo non ho tanto tempo
    ho notato, come ha detto Mich_, le funzioni dentro la funzione Vogel...
    Però io ho provato la pagina con 5 fabbriche e 5 depositi... non conoscendo ne' l'algoritmo ne' quello che dovrebbe fare non so che valori vadano inseriti... inserendo numeri a caso non mi da nessun errore...

    sempre come t'ha detto Mich_ prova a debuggare mettendo qualche alert qua e la

    Aloha

  6. #6
    Reale_Augello
    Guest

    Carissimo...

    ... willybit, secondo me l'algoritmo funziona perchè per pochi depositi e poche fabbriche fa il suo dovere. Non capisco perchè non vada con un pò più di fabbriche o di depositi.

    La funzione Ancora, all'interno della funzione Vogel, sembra non dare nessun problema...

    Come faccio a mettere alert qua e là se, a mio avviso, è tutto OK ? :master:

  7. #7
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Mah!
    vediamo se riesco a darti qualche piccola dritta...

    richiami funzioni con cicli all'interno di cicli? Pekké ho notato che le variabili che usi nei vari cicli for (i,j) non le dichiari locali per le varie funzioni... essendo globali potresti avere incasinamenti di cicli che ti looppano lo script.

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    alla riga 292 fai un ciclo while dove la condizione è la funzione Ancora
    codice:
     while (Ancora())
    all'interno del ciclo while usi i e j e anche all'interno della funzione Ancora
    dichiarale locali!

  9. #9
    Reale_Augello
    Guest

    Locali...

    ... alla funzione Ancora, intendi ? :master:

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    a tutte direi a meno che non ci sia un reale bisogno* di tenerle globali









    * reale bisogno nel senso di un vero bisogno... non un bisogno da Reale_Augello :gren:

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.