Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505

    ottimizzare box inserimento JS - utilizzo classi?

    salve.

    avrei la necessità di fare questa cosa :

    ho dei moduli di input in una pagina html. per ogni modulo ho degli option select che mi corrispondono, esattamente, alla scelta dell'ora, minuti, secondi.

    io ho la necessità di inserire dei moduli al momento tramite javascript. il codice purtroppo diventa troppo massiccio. se (per esempio) ho 10 moduli e ne inserisco 100 (o ne ho già 100 e ne inserisco 10) il codice aumenta in maniera spaventosa (ogni modulo infatti viene rappresentato da circa 200 righe di html).

    il codice allegato alla fine del topic mostra cosa vado a caricare per ogni singolo inserimento.
    ho provato per esempio a impostare solo un semplice parametro per ogni select option, e il codice in quel caso è leggerissimo. il problema è appunto il grande numero di parametri per ogni select option; quello che mi serve è ottimizzare questo procedimento...

    ci son altre metodologie per "rappresentare" quei dati? che ne sò, magari utilizzando delle classi che descrivano una select. o potete consigliarmi qualche altra strategia?

    avevo provato anche a implementarlo/richiamarlo dinamicamente (tramite ajax) ma vorrei un effetto "immediato", senza dover aspettare la risposta dal server.

    ve ne sarei molto grato per qualsiasi tipo di dritta

    Codice PHP:
    function addTracklines() {
        for(
    i=indicei<maxlinei++) {
            $(
    '#trackline'+(i-1)).after(' \
                <div class="sideoff" id="sideline'
    +i+'"> \
                    <div class="sidespace1"></div> \
                    \
                    <div class="sidelabel1"> \
                        Side/Part Name \
                    </div> \
                    \
                    <div class="sidelabel2"> \
                        <input type="text" disabled="disabled" id="inputrealside'
    +i+'" name="sides[]" class="inputTLS" maxlength="50" /> \
                        <input type="hidden" disabled="disabled" id="inputrealsideindex'
    +i+'" name="sidesindex[]" value="'+i+'" /> \
                    </div> \
                    \
                    <div class="sidelabel3"> \
                        [url="javascript:void(0)"]Remove[/url] \
                    </div> \
                    \
                    <div class="sidespace2"></div> \
                </div> \
                \
                <div class="trackon" id="trackline'
    +i+'"> \
                    \
                    <div class="trackcounter" id="inputcounter'
    +i+'"> \
                        '
    +(i+1)+' \
                    </div>  \
                    \
                    <div class="tracktime1"> \
                        <select id="inputhh'
    +i+'" name="hours[]" class="inputTL1"> \
                            <option>??</option> \
                            <option value="">-</option> \
                            <option value="00">00</option> \
                            <option value="01">01</option> \
                            // ... tutte le righe da 0 a 12 per le ore...
                            <option value="12">12</option> \
                        </select> \
                    </div> \
                    \
                    <div class="tracktime2"> \
                        <select id="inputmm'
    +i+'" name="minuts[]" class="inputTL1"> \
                            <option>??</option> \
                            <option value="">-</option> \
                            <option value="00">00</option> \
                            <option value="01">01</option> \
                            // ... tutte le righe da 0 a 59 per le i minuti...
                            <option value="59">59</option> \
                        </select> \
                    </div> \
                    \
                    <div class="tracktime3"> \
                        <select id="inputss'
    +i+'" name="seconds[]" class="inputTL1"> \
                            <option>??</option> \
                            <option value="">-</option> \
                            <option value="00">00</option> \
                            <option value="01">01</option> \
                            // ... tutte le righe da 0 a 59 per i secondi...
                            <option value="59">59</option> \
                        </select> \
                    </div> \
                    \
                    <div class="trackatl"> \
                        <input type="text" id="inputatl'
    +i+'" name="atl[]" class="inputTL2" /> \
                    </div> \
                    \
                    <div class="trackbotton1"> \
                        <select id="inputside'
    +i+'" onchange="addSide(\''+i+'\');" class="inputTL3"> \
                            <option>+ Side</option> \
                            <option value="">------</option> \
                            <option value="1">Before</option> \
                            <option value="2">After</option> \
                        </select> \
                    </div> \
                    \
                    <div class="trackbotton2"> \
                        <select id="inputtadd'
    +i+'" onchange="addTrack(\'2\', \''+i+'\');" class="inputTL3"> \
                            <option>+ Tracks</option> \
                            <option value="">------</option> \
                            <option value="11">+1 Before</option> \
                            <option value="12">+2 Before</option> \
                            <option value="13">+3 Before</option> \
                            <option value="14">+4 Before</option> \
                            <option value="15">+5 Before</option> \
                            <option value="">------</option> \
                            <option value="21">+1 After</option> \
                            <option value="22">+2 After</option> \
                            <option value="23">+3 After</option> \
                            <option value="24">+4 After</option> \
                            <option value="25">+5 After</option> \
                        </select> \
                    </div> \
                    \
                    <div class="trackbotton3"> \
                        [url="javascript:void(0)"]Remove[/url] \
                        <input type="hidden" name="trackpos[]" value="#" /> \
                    </div> \
                </div>'
    );
        }


  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Visto la particolarità e la complessità posta il link alla pagina pubblica, forse vedendo il tutto all'opera si trova una soluzione, altrimenti la vedo dura
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ti ringrazio per la dritta, ma non ho idea di cosa intendi per 'pagina pubblica' mi potresti indirizzare? non sono molto esperto in questo forum hehe.

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Un link alla pagina pubblica(ta)
    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

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    ahhh! LOL! giusto...

    mentre preparavo le pagine per farvele vedere (prima erano in una zona in cui serviva il login) credo di aver trovato la causa scatenante di tutto ciò.

    guardatevi i due esempi :
    primo esempio
    secondo esempio

    se premete ripetutamente (velocemente) su Add 10 Tracks nel primo esempio lo script lavora (quasi, sicuramente posso aumentarlo ancora ma ci siamo quasi) come vorrei; nel secondo è LENTISSIMO.

    credevo che la colpa fosse di JS, invece l'unica differenza tra i due è che nel primo tutto il contenuto non è dentro a un form, nel secondo si. La causa quindi è questa? Come mai? E come potrei risolvere?

    EDIT : idiota, avevo messo i link del localhost

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    nessuno ha una vaga idea di come risolvere questo problema?

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.