Para simplificar mi situación; Tengo 3 páginas de PHP. Dos de ellos agrega y elimina filas de una base de datos, respectivamente. El tercero recupera todas las filas, las codifica como JSON e imprime el resultado.¿Por qué algunas llamadas AJAX tardan más en finalizar que otras cuando las URL tienen el mismo tiempo de respuesta?
He programado la ejecución de todas las páginas, que oscila entre 0.001 y 0.004 segundos. Estos son los horarios del Ajax no obstante, pide:
Fetch tabla entera como JSON: 8-12ms
Añadir fila: 990-1010ms
Quitar consecutivas: 990-1010ms
El tiempo de respuesta del complemento y eliminar tiempos están causando lentitud innecesaria en mi aplicación, teniendo en cuenta que los tiempos de ejecución de PHP son meras fracciones de segundos, y su salida es simplemente "1" para el éxito y "0" para el fracaso (Comparado con la llamada de búsqueda, que imprime hasta 100 filas (~ 10 columnas) de datos como JSON)
Todos mis tiempos de retorno de Ajax se miden en Firebug. Todas las llamadas Ajax se realizan a través de jQuery ($.ajax()
).
Supongo que esto tiene algo que ver con que Firefox no considere que se ha respondido una solicitud GET a menos que haya recibido una determinada cantidad de bytes o caracteres, y que el tiempo de respuesta de 1 segundo sea un tiempo de espera de algún tipo.
¿Alguna sabiduría para compartir sobre el tema?
que hemos cronometrado los tiempos de carga AJAX en Chrome y Opera también (promedios):
Opera:
* Todas las llamadas AJAX ~ 15 ms
Chrome:
* Eliminar filas de fila y búsqueda: ~ 25 ms
* Agregar fila: ~ 350 ms
Mi aplicación es ágil y receptiva en Opera, pero lenta para un grado variable en todos los otros navegadores. Exactamente por qué aún no está claro para mí.
También he sincronizado IE 9, que funciona de forma prácticamente idéntica a Opera. Mi aplicación ahora funciona rápidamente en dos navegadores.
¿Se puede publicar el código (PHP, HTML, JavaScript y MySQL)? ¿Y qué tan grande es la base de datos? (# de filas) –
Ryan Doherty: Me temo que no puedo, ya que este es un proyecto propietario. Sin embargo, ya resumí los tiempos de ejecución de PHP en la pregunta, que incluye consultas MySQL y excluye PHP como la causa del retraso de 1 segundo. Cualquier fragmento de código en particular que quiera ver Estoy seguro de que podría proporcionar aunque – Hubro
¿Ha intentado medir el tiempo de carga de cada página cuando se solicita directamente, y no a través de ajax? PHP tiene algunos gastos generales antes de que se ejecute su script (más aún si está utilizando algún tipo de marco). –