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

    alleggerire pagina html

    salve,

    nel mio sito stò creando una specie di interfaccia che permette agli utenti di inserire dei determiati dati.

    ho una cosa tipo 99 div. per ogni div c'è un input type text. e fin quì tutto ok.

    problema è che per ogni div (correlato al input field) ci sono 5 select, ognuno dei quali contiene dei valori che vanno da un minimo di 5 a un massimo di 30 campi (es. un select serve per aggiungere delle righe, uno serve per impostare un giorno della settimana....e via così).

    ora, guardando il codice html, mi sono accorto che ho superato le 20.000 righe

    sicuramente non è il massimo per le prestazioni (anche se su i vari browser del mio pc non noto questi gran rallentamenti).

    c'è un modo per alleggerire il tutto? magari qualche costrutto matriciale html, oppure qualche altro enigma che mi sfugge. avevo pensato allo spezzettare le pagine, ma vorrei evitare.

    cordiali saluti

  2. #2
    Moderatrice di CSS L'avatar di ResianTaxidrive
    Registrato dal
    Oct 2007
    residenza
    Udine
    Messaggi
    2,766
    ma è proprio necessario che ci sia un div per ogni input?

  3. #3
    Ciao,
    vedo se ti posso aiutare.

    Allora, primo: io non credo che sia necessario un div per contenere un singolo input, cioè è uno spreco di codice ..A meno che tu non abbia bisogno di dare uno stile/posizione particolare all'area inclusa/attorno a ciascun input..

    Ma ripensandoci, anche allora, lavorando con i css riusciresti comunque ad ottenere questo risultato (se intendi personalizzare ogni div/input), e anche con molta meno fatica fidati


    Riguardo le prestazioni,
    sicuramente non ci saranno chissà quali problemi, però considera 2 cose:

    1) chi opera con browser meno recenti potrebbe riscontrare un leggero calo di prestazioni,
    in quanto il motore di rendering dell'html potrebbe soffrire di qualche pecca, che potrebbe divenire più evidente se in aggiunta l'utente usa una connessione ADSL lenta..
    Ma è un problema marginale, sta a te decidere quanto darci peso.

    2) se devi indicizzare la pagina sui motori di ricerca, gli spider non vedranno tanto di buon'occhio la tua pagina, se supera diciamo i 300/500 kb..
    Se non devi indicizzare la pagina allora non è un problema.


    Infine, posso dirti che potresti usare javascript per includere codice html dentro la pagina.
    Se proprio devi avere 99 div con 99 input text, potresti far così:
    a)includere 3 script da 33 div ciascuno
    b)includere 9 scritp da 11 div ciascuno
    c)includere 11 script da 9 div ciascuno
    Tutto ciò sempre e solo per migliorare la leggibilità, in quanto avresti i div separati a blocchi per cosi dire..ovviamente puoi creare degli script con numero di div variabile come vuoi

    Se alla fine, il tuo problema è solo snellire le righe di codice,
    bè, leva quei 99 div ..ne bastano una decina max,
    se proprio vogliamo metterli

    Saluti, spero di esserti stato utile!
    http://www.pietrocarella.com
    My Workstastion DELL PRECISION T5500:
    -2x Intel XEON E5620 HT (16 core 32nm)
    -2x SAS Seagate CHEETAH (15.000 rpm)
    -Nvidia QUADRO FX 580 (32 core CUDA)

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    Originariamente inviato da ultimatewarrior
    Allora, primo: io non credo che sia necessario un div per contenere un singolo input, cioè è uno spreco di codice ..A meno che tu non abbia bisogno di dare uno stile/posizione particolare all'area inclusa/attorno a ciascun input..
    bhè, dentro a un div ho ad esempio 3 select, un input, altre 2 select, ed altre cose scritte. ognuno di questi elementi è a sua volta dentro un div. così ho più div dentro a un div contenitore. io l'ho sempre vista così l'ottica di organizzare le cose. anche perchè così, per ogni elemento, stabilisco stile/ecc (per esempio, l'input box abbassato di 5 px, la scritta di 6, ecc ecc).

    Originariamente inviato da ultimatewarrior
    Infine, posso dirti che potresti usare javascript per includere codice html dentro la pagina.
    infatti mi sà che farò così :
    creo 10 div, poi con jquery (tramite insertBefore() o insertAfter() per esempio) aggiungo/rimuovo i div nei punti che mi interessa aggiungerli. è anche per questo che mi serve un div (con id univoco) per identificare il luogo esatto dove aggiungere eventuali nuovi div (potrei avere la necessità di aggiungerli, per esempio, tra il 20 e il 21)!!!

  5. #5
    Originariamente inviato da markzzz
    bhè, dentro a un div ho ad esempio 3 select, un input, altre 2 select, ed altre cose scritte. ognuno di questi elementi è a sua volta dentro un div. così ho più div dentro a un div contenitore. io l'ho sempre vista così l'ottica di organizzare le cose. anche perchè così, per ogni elemento, stabilisco stile/ecc (per esempio, l'input box abbassato di 5 px, la scritta di 6, ecc ecc).
    Si è giusto usarli per organizzare struttura/stile della pagina, purchè non si esageri
    Se ogni singolo div che usi ha un suo scopo, allora non stai sbagliando nulla..
    Ciò che è importante alla fine, non è tanto che la pagina abbia 1000 righe di codice o 50.000, che può essere html o javascript o asp o php..ma è importante che ogni elemento abbia un suo giusto scopo logico..se noti div o altri tag superflui fai piazza pulita!


    Originariamente inviato da markzzz
    infatti mi sà che farò così :
    creo 10 div, poi con jquery (tramite insertBefore() o insertAfter() per esempio) aggiungo/rimuovo i div nei punti che mi interessa aggiungerli. è anche per questo che mi serve un div (con id univoco) per identificare il luogo esatto dove aggiungere eventuali nuovi div (potrei avere la necessità di aggiungerli, per esempio, tra il 20 e il 21)!!!
    Si certo, di norma è buona pratica utilizzare i tag <hn> (h1,h2,h3,ecc..) oppure, specialmente se usi una libreria ajax, i div proprio perchè puoi sovrascrivere/aggiungere contenuto ai div e quindi risultano un importante punto di riferimento..
    http://www.pietrocarella.com
    My Workstastion DELL PRECISION T5500:
    -2x Intel XEON E5620 HT (16 core 32nm)
    -2x SAS Seagate CHEETAH (15.000 rpm)
    -Nvidia QUADRO FX 580 (32 core CUDA)

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505


    un ultima cosa : te hai idea come si fà in jquery a resettare il codice html da un punto specifico?

    esempio : ho 10 div con id univico.

    se con una select seleziono 3, vorrei che dopo il terzo l'html sparisse.

    ho provato con : $('#div3').after().html("");
    ma non mi elimina tutti i div dopo a il terzo div, mi elimina solo il div4. idee?

  7. #7
    Guarda, la prima cosa che mi viene in mente :master:
    è che mi creerei una piccola funzione javascript del tipo:

    function removeField(startid,endid)
    {

    for(i=1; i=endid-startid; i++)
    {
    idname = "#div" + startid;
    $(idname ).remove();
    startid++:
    }

    }

    Di modo da poterla richiamare quando mi serve.

    Premesso che dovresti avere i div con stesso prefisso ed id numerico progressivo,
    (ad esempio '#div1, #div2, #div3, ecc..' oppure '#form1div1, #form1div2, ecc..')
    abbiamo che startid è il primo div/elemento da eliminare, endid è l'ultimo.

    Nel tuo caso avresti la chiamata removeField('4','10'); che appunto rimuove i div/elementi dopo il terzo, quindi dal quarto sino al decimo...

    Spero di esserti stato utile
    http://www.pietrocarella.com
    My Workstastion DELL PRECISION T5500:
    -2x Intel XEON E5620 HT (16 core 32nm)
    -2x SAS Seagate CHEETAH (15.000 rpm)
    -Nvidia QUADRO FX 580 (32 core CUDA)

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    505
    sisi, facendola progressivamente in un for risolvo (infatti ero partito con quell'idea). pensavo esistesse già una funzioncina, ma vabbè, va bene comunque

    saluti!!

  9. #9
    Lieto di esserti stato utile

    Ciao e buona scorpacciata di div!
    http://www.pietrocarella.com
    My Workstastion DELL PRECISION T5500:
    -2x Intel XEON E5620 HT (16 core 32nm)
    -2x SAS Seagate CHEETAH (15.000 rpm)
    -Nvidia QUADRO FX 580 (32 core CUDA)

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.