Buenas, escribo porque me encuentro con un inconveniente al usar la librería Pace.js la cual añade de manera automatica un progresbar al estilo de youtube (una linea en la parte superior de la página) para peticiones ajax, entre otros.
El problema es que al incluir el js, el toolbar de symfony ya no muestra ni actualiza las peticiones ajax, es decir, cuando ejecuto una petición ajax en la aplicación, el toolbar de symfony no la detecta. Apenas comento la inclusión de la lib pace.js, el toolbar funciona correctamente.
He probado multiples configuraciones del Pace.js pero el toolbar sigue sin detectar los llamados ajax, además he probado importadno el archivo tanto en el <head>
como al final de la página sin que esto cambie nada.
De momento estoy viendo usar la librería NProgress que es para lo mismo, pero no trabaja de forma automática, por lo que debo iniciar y detener el progress manualmente.
Respuestas
Tanto la librería Pace.js como la barra de depuración de Symfony son muy "egoístas" y tratan de capturar todas las peticiones Ajax para hacer su trabajo.
Por suerte, la librería Pace.js tiene una opción llamada ignoreURLs
que sirve para configurar las URLs para las que no debe entrometerse. Según su documentación:
You can also ignore URLs based on a pattern:
Pace.options = { ajax: { ignoreURLs: ['some-substring', /some-regexp/] } }
Así que para ignorar todas las peticiones de la barra de Symfony, podrías utilizar algo así (seguramente tendrás que retocar la expresión regular para adaptarla a tu caso):
Pace.options = { ajax: { ignoreURLs: [/\/app_dev.php\/_wdt\/.*/] } }
@javiereguiluz
Por lo momentos estoy usando la librería NProgress y no he tenido más este problema. Sin embargo voy hacer pruebas con el ignoreURLs
a ver, pero honestamente no se si me sirva.
El motivo es que mi problema es que el toolbar de Symfony (que carga correctamente) no ataja y procesa las peticiones Ajax para mostrar la información de esas peticiones Ajax en el profiler cuando uso Pace.js, por lo que no creo que ese patrón de URL me sirva de mucho, debido a que las URL a las que llamo por Ajax no son del profiler.
Saludos!
@manuel_j555
Tienes razón y creo que no te va a servir la solución que te indiqué. Lamentablemente no se me ocurre otra forma de solucionarlo.
@javiereguiluz
¡Oh, así que era por eso!
Perdón que reviva este tema, es que yo incluí pace.js
y de repente la barra de Symfony dejó de mostrarme las peticiones Ajax, pero no le di importancia...
Aprovecho para decir que me gusta la forma como contestas a los temas @javiereguiluz, me han sido de mucha ayuda.
Saludos.
@ORODii