Deshabilitar el gráfico intersticial cuando se utiliza el enlace cfdiv
-
02-07-2019 - |
Pregunta
¿Hay alguna forma de mantener " Cargando ... " gráfico de aparecer cuando se actualiza cfdiv? Me gustaría evitar el parpadeo de cargar el gráfico y luego cargar el nuevo html.
Solución
Al agregar estas líneas en la parte inferior del encabezado, sobrescribe " Cargando ... " html y parece evitar el efecto de parpadeo en IE y FireFox:
<script language="JavaScript">
_cf_loadingtexthtml="";
</script>
Si bien esto parece hacer el truco, sería bueno si hubiera una forma oficialmente compatible de personalizar la animación de carga por página o por control. Esperemos que agreguen soporte para eso en ColdFusion9.
Otros consejos
No creo que haya una forma actual de hacerlo mediante programación dentro de la etiqueta cfdiv
. Si realmente quieres deshacerte de ese " Cargando ... " Mensaje y la imagen, hay un par de lugares donde puedes mirar.
Puede cambiar el nombre o eliminar la imagen, que se encuentra en: CFIDE\scripts\ajax\resources\cf\images\loading.gif
Eso solo se deshace de la animación. El " Cargando ... " el texto puede ser borrado en una cadena vacía, y se define en: CFIDE\scripts\ajax\messages\cfmessage.js
Obviamente, realizar estos cambios tendrá un impacto en otras etiquetas que no sean cfdiv
, pero si está buscando eliminar este comportamiento en un lugar, estoy seguro de que no le importará matarlo en ningún otro lugar. también. :)
Me encantaría ver una forma más limpia de hacerlo si alguien más tiene alguna idea.
Esto no es de ninguna manera una solución completa o elegante, pero descubrí que el uso de márgenes negativos en elementos adyacentes puede " cubrir " la animación. No sé si este método funciona en todos los casos, pero para mi caso particular funcionó. La animación apareció junto a un campo de texto enlazado, a la derecha de la cual había un botón de envío. La capa fue flotada a la derecha. Usé un margen negativo en el botón de envío y cubrió la animación sin afectar la alineación de la capa.
Otra medida que hice fue verificar la estructura de la capa y agregar el siguiente código a mi css, estar seguro:
#TitleNameloadingicon {visibility:hidden;}
#TitleName_cf_button {visibility:hidden;}
#TitleNameautosuggest {background-color:#ffffff;}
Puede crear funciones para cambiar el mensaje antes de llamar a la carga ajax que puede configurar el mensaje y la imagen a un nuevo valor.
function loadingOrder(){
_cf_loadingtexthtml="Loading Order Form <image src='/CFIDE/scripts/ajax/resources/cf/images/loading.gif'>";
}
function loadingNavigation(){
_cf_loadingtexthtml="Loading Menu <image src='/CFIDE/scripts/ajax/resources/cf/images/loading_nav.gif'>";
}
(estos se integrarán finalmente en una sola función que tomará un parámetro text_value y image_path)
En algunos de mis procesos que cargan un cfdiv de navegación principal e izquierdo, uso una función como esta:
function locateCreateOrder(){
loadingOrder();
ColdFusion.navigate('/functional_areas/orders/orders_actions/cf9_act_orders_index.cfm','main_content');
loadingNavigation();
ColdFusion.navigate('/functional_areas/products/products_actions/cf9_products_menu.cfm','left_menu');
}