Creé una página que tiene un diálogo basado en JQuery usando la función JQuery UI estándar. Lo hago con la funcionalidad de JQuery lista para usar ... nada especial. Aquí está mi HTML para el diálogo:Cuadro de diálogo de JQuery presentado momentáneamente en la página carga
<div id = "myDialog">
<!-- ... more html in here for the dialog -->
</div>
Entonces el JQuery llamados en javascript que transforma el <div> a un cuadro de diálogo:
// pruned .js as an example of kicking up a JQuery dialog
$('#myDialog').dialog({
autoOpen: false,
title: 'Title here',
modal: true
}
});
Una vez más, JQuery llano-vainilla. Así que inicie este asistente haciendo clic en un enlace en la página principal, y luego genera un diálogo de JQuery que tiene una gran cantidad de HTML que incluye imágenes, etc.
Mientras continuaba desarrollando esta página, empecé a notar que cuando cargué la página en el navegador que las etiquetas <div> que estaba poniendo en que JQuery se transforma en cuadros de diálogo se mostrarían muy brevemente. Entonces la página actuaría como se esperaba. En otras palabras, el cuadro de diálogo no estaría oculto, se mostraría brevemente en línea en la página. ¡Muy feo y poco profesional! Pero después de una fracción de segundo, la página se mostraría correctamente y se vería exactamente como esperaba/quería.
Con el tiempo, a medida que el tamaño de la página creció, creció el tiempo en que la página permanecería incorrectamente representada. Supongo que el motor de renderizado del navegador muestra la página mientras se está cargando, y al final está iniciando JQuery que transformará el <div> en un cuadro de diálogo. Esta función JQuery transformará el simple <div> en un cuadro de diálogo de JQuery y lo ocultará (ya que tengo la propiedad autoOpen establecida en falso). Algunos navegadores <tos> IE </tos > lo muestran más que otros. Mi gran diálogo ahora hace que la página se muestre incorrectamente durante aproximadamente 1 segundo ... ¡YUCK!
Eso es común en jquery, primero los elementos de su sitio (divs) serán feos, durante aproximadamente un segundo, y luego ¡BAM! obtienes todos los estilos, pestañas, acordeones, etc. He estado tratando de deshacerte de eso por un largo tiempo sin suerte. – Ben
el {display: none; } funciona bien para mí. Mientras esto funciona, es solo otro ejemplo de lo que es un desarrollo web de hackeo en general. –
Oh, descubrí que hay un término para esto: FOUC (Flash of Unstyled Content). –