Dunque, ti rispondo a capitoli
Errori del codice:
Purtroppo errori non ce ne erano, essendo poi di base molto semplice.
L'unico inghippo era la pesantezza della variabile, la quale era corretta, ma veramente onerosa...
Ajax:
Ad Ajax ci avevo pensato, solo che volevo ottenere la massima performance di questa pagina, un po' per mio estro, un po' perché se poi fai una pagina troppo pesante di rompono non poco al lavoro (c'è un sistemista che ha tutti i grafici di performace sempre sottocontrollo).
Ajax, per sua stessa dicitura, è una tecnologia asincrona, ogni volta che viene chiamato finché non ha finito continua a lavorare.
Anche trovando il sistema di attendere il ritorno del puntatore dalla chiamata prima di permettere una successiva chiamata rimarrebbe comunque il fatto che se l'utente (o utonto) fosse indeciso su cosa scegliere e cambiasse la sua scelta, che ne so, 10 volte, vorrebbe dire che per 10 volte io andrei a fare una query su database e questo lo vorrei evitare nella maniera più assoluta.
Soluzione, ovvero, in confronto Dante ha bighellonato:
La mia prima soluzione l'ho dovuta cannare per ovvi motivi, visto che il caro IE7 non gradisce le variabili js grandi.
Mi sono arrovellato e alla fine ho pensato: "Ah, ma se a lui non piacciono le variabili grandi, passiamogli il codice tramite HTML".
Allora, invece di una grande variabile ho riscritto il codice della SELECT dentro un DIV invisibile con ID, in questo modo fregavo IE7 che non si faceva più prendere da scompensi in vista di megavariabili.
Ora invece di sostituire l'innerHTML della cella dove risiedeva la combo con le varie combo a mia disposizione il cui codice era nelle variabili, ora il codice me l'andavo a pescare da un altro innerHTML.
Firefox tutto ok, IE7 no... non impazziva più devastando il pc, ma al momento di scambiare il contenuto della cella faceva visibilmente più fatica del firefox (ci metteva 3/4 volte di più).
Allora mi sono arrovellato ancora, capendo che IE7 faticava anche a riscrivere l'innerHTML....
Finalmente ho trovato la soluzione definitiva.
Le due combo le ho create e messe tutte e due al posto loro, ma invisibili, ll'unico problema era che una combo invisibile comunque occupa spazio (anche facendone apparire una alla volta una si vedeva a sinistra, l'altra a destra).
Poi ho avuto l'illuminazione, non bastava renderla invisibile, ma per scollegare la combo dalla pagina bastava cambiare il suo position da relative ad absolute e come per incanto se ne andava a quel paese in tutti i sensi
Il risultato è una pagina che una volta caricata, pur sembrando un po' pesantina nel cambiare la combo iniziale, in realtà fa sbrigare tutto il lavoro al pc client non appesantendo ulteriormente il server.
Ho dovuto penare ma alla dura l'ho vinta![]()


Rispondi quotando