Проблемы с jQuery Ajax и setInterval Chrome - PullRequest
1 голос
/ 13 мая 2011

Я пытаюсь периодически возвращать значение данного URL, используя jQuery и setInterval.Мой код выглядит так:

    $("form").submit(function() {
        setInterval(function(){
            $('#upload_progress').load('/upload_progress');
        }, 5000);
    });

Это отлично работает в Firefox, но в chrome функция load () никогда не запускается.Я также использовал функцию $ .ajax с тем же результатом.

Любые идеи, почему это влияет только на Chrome (v11.0)?

Любая помощь будет высоко ценится!

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Во-первых, вы фактически отправляете форму.Я уверен, что это переводит браузер в состояние «эй, я жду перенаправления с сервера».Если вы действительно хотите опрашивать и обновлять страницу, вам, вероятно, нужно сделать

$("form").submit(function(e) {
  e.preventDefault();
  // ...
}

Просто для начала.В этом контексте это работает для меня.Здесь я даже заставил вас немного поработать с JSFiddle: http://jsfiddle.net/plukevdh/sRe4k/. Если вам понадобится перенаправление после завершения, вы можете добавить больше данных к обратному вызову (json или что-то еще), чтобы вы могли проверить, если {status: 0-100 [percent], completed: true|false} и если выполнено или статус> = 100, просто измените расположение окна.

0 голосов
/ 13 мая 2011

Ваш код завернут в проверку готовности документа?

$(document).ready(function(){
    // your code
});

Если нет, возможно, поэтому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...