Ver Mensaje Individual
  #7 (permalink)  
Antiguo 13/12/2013, 11:01
Avatar de marlanga
marlanga
 
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 4 meses
Puntos: 206
Respuesta: Crear hoja de estilo CSS con javascript

Es que haces cosas muy raras, entendiendo raro como "poco usual".
¿Cuál es la utilidad de crear CSS con javascript? Eso atenta contra todos los profesionales del diseño y maquetación de páginas webs xd.

Pero el problema no es la rareza de lo que haces, es que insertar algunos tipos de elementos en el DOM realmente hacen operaciones asíncronas. Creo que son scripts y CSS link, que se tienen que hacer dos operaciones: Insertar el nodo en el DOM, que es instantáneo, y procesarlo de forma asíncrona: se carga en memoria y se ejecuta el JS, y el CSS se carga en memoria y se aplican los estilos a los nodos que deban. Ese tiempo de proceso no es instantáneo, y dependerá de la potencia de la máquina que lo hace. No sé por qué no lo hicieron síncrono, tal vez porque cuando se cargan hojas de estilo o ficheros JS, el tiempo que tarde el servidor en devolver los recursos puede ser descabellado, y para no hacer la misma operación de forma síncrona y asíncrona, optaron por hacerlo siempre asíncrono.

Callback es hacer que una función acepte como argumento otra función, lo que permite que la primera función disparare la que le llega como argumento cuando quiera o pueda. jQuery basa casi toda su filosofía en llamadas callback.
En tu caso, tú no puedes insertar reglas CSS a un nodo recién metido, por lo que dije antes de que es asíncrono y tal. Pues con un callback bien pensado solucionas la papeleta y te olvidas. Yo le paso a createStyleSheet una función con las instrucciones de meter las reglas, y createStyleSheet ya las meterá cuando pueda sin que yo tenga que preocuparme.

Última edición por marlanga; 13/12/2013 a las 11:13