Ho creato una pagina che ha una finestra di dialogo basata su JQuery che utilizza la funzione dell'interfaccia utente JQuery standard. Lo faccio con le funzionalità out of the box di JQuery ... niente di speciale. Ecco il mio HTML per la finestra di dialogo:Finestra di dialogo JQuery momentaneamente visualizzata al caricamento della pagina
<div id = "myDialog">
<!-- ... more html in here for the dialog -->
</div>
Poi il JQuery chiamato in javascript che trasforma il <div> a una finestra di dialogo:
// pruned .js as an example of kicking up a JQuery dialog
$('#myDialog').dialog({
autoOpen: false,
title: 'Title here',
modal: true
}
});
Anche in questo caso, plain-vanilla JQuery. Quindi si avvia questa procedura guidata facendo clic su un collegamento nella pagina padre e quindi si genera una finestra di dialogo JQuery che ha una parte significativa di HTML che include immagini, ecc.
Come ho continuato a sviluppare questa pagina, ho iniziato a notare che quando ho caricato la pagina nel browser che i tag div < si inserivano in trasformazioni di JQuery in finestre di dialogo verrebbero visualizzati brevemente. Quindi la pagina funzionerebbe come previsto. In altre parole, la finestra di dialogo non sarebbe nascosta, verrebbe visualizzata brevemente in linea nella pagina. Abbastanza brutto e poco professionale! Ma dopo una frazione di secondo, la pagina si renderizza correttamente e sembra proprio come mi aspettavo/volevo.
Nel corso del tempo, con l'aumentare delle dimensioni della pagina, è aumentata la volta in cui la pagina sarebbe rimasta in modo errato. La mia ipotesi è che il motore di rendering del browser stia effettuando il rendering della pagina mentre sta caricando, quindi alla fine sta dando il via alla JQuery che trasformerà il < > div in una finestra di dialogo. Questa funzione di JQuery trasformerà quindi il semplice <div> in una finestra di dialogo di JQuery e lo nasconderà (poiché ho la proprietà autoOpen impostata su false). Alcuni browser <tosse> IE </tosse > lo visualizzano più a lungo di altri. La mia finestra di dialogo di grandi dimensioni ora causa il rendering non corretto della pagina per circa 1 secondo ... YUCK!
Questo è comune in jquery, prima gli elementi del tuo sito (divs) saranno brutti, per circa un secondo, e poi BAM! ottieni tutti gli stili, le schede, le fisarmoniche, ecc. Ho cercato di sbarazzarmene per molto tempo senza alcuna fortuna. – Ben
{display: none; } funziona bene per me. Mentre questo funziona, è solo un altro esempio di ciò che uno sviluppo web di hacking è in generale. –
Oh, ho scoperto che esiste un termine per questo: FOUC (Flash of Unstyled Content). –