Слишком большой отклик AJAX для мобильного сафари? - PullRequest
2 голосов
/ 15 июля 2010

У меня возникла небольшая проблема при отладке веб-приложения для мобильного сафари. Веб-приложение является интерфейсом для довольно сложного инструмента моделирования на стороне сервера. Обзор того, как работает веб-приложение:

  1. Пользователю предоставляется экран, на котором они заполняют значения для имитации, которая будет выполнена.
  2. Пользователь нажимает «Запустить симуляцию», после чего на сервер выполняется вызов AJAX. Панель состояния на странице обновляется, показывая, что симуляция выполняется. Сценарий php запускает симулятор со значениями POSTed и отправляет обратно некоторый JavaScript, чтобы сначала обновить строку состояния, указывающую, что данные извлекаются, а затем настроить еще один вызов AJAX для запроса полученных данных.
  3. Сервер отвечает на этот второй вызов AJAX с данными из моделирования - несколькими большими массивами в формате json (порядка 1-2 МБ общих данных), а также некоторым javascript для очистки панели состояния и построения графика. начальный шаг результатов.
  4. Затем пользователь может использовать несколько ползунков / вкладок для просмотра различных графиков, просмотра временных шагов моделирования и т. Д.

Все это прекрасно работает для основных настольных браузеров (IE 7+, Firefox (win, mac, linux), safari (Mac, windows) и т. Д.). Тем не менее, в мобильном сафари шаги 1 и 2 проходят нормально (весь javascript выполняется для обновления панели состояния и т. Д.), Но на шаге 3 все рушится - создается впечатление, что возвращаемый javascript никогда не выполняется (панель состояния никогда не очищается, а результаты никогда не отображаются).

Я добавил несколько предупреждений для отладки, но они также не выполняются. Наконец, я попытался вернуть все, кроме данных моделирования, и все работает нормально (хотя графики пустые), поэтому что-то не так в этом большом возврате данных json. Отладчик javascript в safari не показывает ошибок, и я не знаю, как продолжить отладку чего-то подобного. есть идеи?

Ответы [ 2 ]

0 голосов
/ 01 марта 2012

Известна проблема с Safari (как для мобильных, так и для настольных компьютеров), которая ограничивает размер ответа AJAX до 512 КБ.

0 голосов
/ 15 июля 2010

Я не могу сказать вам ответ на вашу проблему, но вот как я отлаживал:

  • Попытайтесь заставить сервер отослать только несколько килобайт данных
  • Проверьте, можете ли вы распечатать размер данных
  • Разбейте данные на более мелкие и более управляемые куски (в любом случае JSON должен быть маленьким)

Не совсем ответкак я и сказал.Больше подхода.

...