¿Una respuesta AJAX demasiado grande para un safari móvil?

Me estoy encontrando con un pequeño problema al depurar una aplicación web para safari móvil. La aplicación web es una interfaz para una herramienta de simulación del lado del servidor bastante compleja. El resumen de cómo funciona la aplicación web es:

  1. Al usuario se le presenta una pantalla donde llena los valores para que se realice la simulación.
  2. El usuario hace clic en “ejecutar simulación” en el momento en que se realiza una llamada AJAX al servidor. Se actualiza un panel de estado en la página, que indica que la simulación se está ejecutando. Un script php ejecuta el simulador con los valores POSTALES y envía un poco de javascript para actualizar primero la barra de estado que indica que se están recuperando los datos y luego configurar otra llamada AJAX para solicitar los datos resultantes.
  3. El servidor responde a esta segunda llamada AJAX con los datos de la simulación, algunas matrices grandes en formato json (en el orden de 1-2 mb de datos totales), junto con algunos javascript para borrar el panel de estado y trazar el paso inicial de resultados.
  4. Luego, el usuario puede usar algunos controles deslizantes / tabs para ver diferentes gráficos, recorrer los pasos de tiempo de simulación, etc.

Todo esto funciona maravillosamente para los principales navegadores de escritorio (IE 7+, Firefox (win, mac, linux), safari (Mac, windows), etc.). Sin embargo, en el safari móvil, los pasos 1 y 2 van bien (todo el javascript se ejecuta para actualizar el panel de estado, etc.) pero todo se derrumba en el paso 3, parece que el javascript que se devuelve nunca se ejecuta (el panel de estado Nunca se borra, y los resultados nunca se trazan).

He insertado algunas alertas para depurar, pero tampoco se ejecutan. Finalmente, traté de devolver todo menos los datos de simulación, y todo funciona bien (aunque los gráficos están en blanco), por lo que es algo incorrecto en este gran retorno de datos json. El depurador de safari javascript no muestra errores, y no tengo idea de cómo proceder a la depuración de algo así. ¿algunas ideas?

No puedo decirte la respuesta a tu problema, pero aquí es cómo me gustaría depurar:

  • Intente que el servidor envíe solo unos pocos kb de datos
  • Vea si puede imprimir el tamaño de los datos
  • Divida los datos en trozos más pequeños y más manejables (JSON debe ser pequeño de todos modos)

No es realmente una respuesta, como dije. Más un enfoque.

Hay un problema conocido con Safari (tanto para dispositivos móviles como para equipos de escritorio) que limita el tamaño de respuesta de AJAX a aproximadamente 512K.