Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

Problema con Plugin de Javascript Pace.js y Symfony

3 de noviembre de 2015

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

#1

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

3 noviembre 2015, 22:51
#2

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

3 noviembre 2015, 23:36
#3

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

4 noviembre 2015, 8:53
#4

¡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

9 enero 2016, 5:57