La aplicación iOS / PhoneGap no puede download imágenes / videos remotos a través de la API REST después de 60 segundos, ¿por qué se agota el time?

Hemos creado una aplicación Enterprise iPad2 + que se conecta a un Drupal CMS, donde el contenido (text / imágenes / video) se entrega a la aplicación a través de una API REST.

Cuando el usuario inicia la aplicación por primera vez, se le solicita que descargue el contenido a través de la networking Wi-Fi. Estamos experimentando que el contenido no se puede download de manera inconsistente, es decir, a veces 60 imágenes no se pueden download; otras veces 20 imágenes fallan. Dado que hemos agregado video a la mezcla de descargas, el contenido falla incluso más a menudo.

Detalles del server:

  • Servidor de Windows
  • IIS7.5
  • PHP 5.3
  • MYSQL5.1

Detalles de la aplicación:

  • Require.js: proporciona el file JavaScript y la carga de modules
  • Backbone.js: proporciona un marco de aplicaciones de JavaScript frontend
  • Cordova (v2.7.0): se utiliza para proporcionar un entorno para ejecutarse en iOS
  • Raphael.js: para charts de procedimientos y animaciones
  • jQuery y complementos: para la manipulación de Dom, animaciones e interacciones
  • Bootstrap: marco base para el marcado HTML

El process de descarga es el siguiente:

  1. El usuario inicia la aplicación y se le solicita que descargue contenido.
  2. La descarga comienza
  3. La aplicación ahora realiza una llamada AJAX a la API REST para recuperar contenido
  4. Tras una recuperación exitosa, la API REST ofrece una variedad de contenido (text / imágenes / video): tamaño máximo de file de video 11mb
  5. El contenido se entrega sincrónicamente

Podemos agregar lógica para seguir intentando una falla, pero esto podría dar como resultado un ciclo indefinido. El tamaño de descarga de contenido es de aprox. 50mb, por wifi.

Nuestras testings:

  • Hemos intentado desde 3 ubicaciones diferentes en el mundo: SA, Reino Unido y EE. UU. Y problemas similares.
  • Hemos probado una descarga de 300 Mb desde el mismo server, en el mismo iPad y se descarga bien

PREGUNTA:

  • ¿Alguien puede decirnos por qué esto estaría fallando?
  • ¿Podría ser el problema con un problema de configuration de Drupal que estamos perdiendo?

ACTUALIZACIÓN 25 de agosto:

Hemos investigado un poco más y parece que el problema puede ser el resultado de que iOS Safari se agotó en 60 segundos, y luego todo falla después de que se descarga, ver aquí: http://www.sencha.com/forum/showthread. php? 111231-iOS-Safari-Mobile-AJAX-timeout

¿Alguien más se ha topado con este problema?

Hemos intentado download a través de LAN, y eso está 100% bien. WIFI es el problema.

Hemos intentado actualizar la secuencia de commands de descarga después de x segundos y restablecer el contador de time de espera. Hemos intentado detectar si una descarga ha fallado y continuar intentándolo nuevamente.

Stumped en este punto …



SOLUCIÓN ACTUALIZADA 28 de agosto:

SOLUCIÓN ACTUALIZADA: hemos solucionado el problema. El problema radica fundamentalmente en el hecho de que iOS Safari tarda más de 60 segundos . ¿Por qué? No tenemos idea … Lo que estábamos haciendo era search los files de la list completa para download, y luego downloadlos sincrónicamente. Lo que sucedió en 60 segundos, es el time de descarga y estábamos perdiendo nuestra list de files. Lo que hicimos para resolver esto, es que guardamos los files que no se downloadon en 60 segundos, luego comenzamos el process de descarga nuevamente con esta nueva list y repetimos este process hasta que todos los files se downloadon correctamente.