Mobile Safari отключает функцию ajax в iOS 5 - PullRequest
1 голос
/ 16 января 2012

У меня мобильное приложение, работающее на jQuery Mobile / PhoneGap, и только в iOS 5 мой обратный вызов ajax перестает срабатывать через некоторое время. Я использую функцию jQuery $.ajax, и вот некоторые из сообщений об ошибках, которые я получил:

  • textStatus = parsererror
  • errorThrown = undefined не был вызван

Во второй ошибке выше «undefined» - моя функция обратного вызова. Мой вопрос: отключает ли Mobile Safari функции через некоторое время, если выдается слишком много ошибок?

Я предполагаю, что, когда происходит соединение с мобильным устройством слишком медленно, файл JSON, который я беру (214K), делает вызов AJAX слишком длинным (> 10 с?), А Mobile Safari отменяет вызов AJAX. , Затем, после числа X отмененных вызовов AJAX, кажется, что Mobile Safari полностью отключает функцию обратного вызова.

Кто-нибудь еще с похожим поведением?

1 Ответ

0 голосов
/ 10 февраля 2012

Я часто использую $ .ajax и не сталкивался с этой проблемой.Я предлагаю установить таймаут на 50000 для медленного соединения.Чтобы увидеть ошибку, где-то в html добавьте:

 <div id='text1'>No Error yet...</div> 

, и параметр тайм-аута будет добавлен как:

    $.ajax({
    type: "GET",
    url: "yourpage.html",
    async: true,
    cache: false,
    timeout:5000,
    success: function(data){ 
        //something with the data
    },
    error: function(XMLHttpRequest, textStatus, errorThrown){
        $("#text1").text("Comet Timeout ERROR: " + textStatus + " (" + errorThrown + ")");
    },
});
...