Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.04.2017, 14:09
Новичок на форуме
Отправить личное сообщение для headmaster911 Посмотреть профиль Найти все сообщения от headmaster911
 
Регистрация: 17.04.2017
Сообщений: 2

проверка, пока файл не будет готов
В бэкенде формируется файл (от моментально и до 1мин). Написал проверку сформировался ли файл. На странице работает ajax.

function check_for_file() {
    $.ajax({
    url: '/check/', // проверка на существование файла
    success: function(data) {
        location.replace('/hello/'); // редирект на загрузку
        return true;
    },
    failure: function(data) {
        alert('Got an error');
    }
    });
    return false
}
 
a = check_for_file();
}
// a= false
// while (a == false) {
//     a = check_for_file();
// }
 
console.log(a);

С единичной проверкой всё нормально. Теперь хочу сделать, чтобы проверка была цикличной, но у меня постоянно подвисает страница (зацикливается скрипт). Можно ли как-то переделать и как?
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2017, 14:49
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,257

Сообщение от headmaster911
Теперь хочу сделать, чтобы проверка была цикличной
Когда ответ получен но файл не готов - запустить повторную проверку.
Можно сразу... А можно с использованием setTimeout()...
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2017, 16:20
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

headmaster911,
Сообщение от headmaster911
С единичной проверкой всё нормально
А вы уверены?
Что-то мне кажется, что в ответ вы получаете false и всегда будете его получать - и при повторных проверках тоже, т.к повторный запуск check_for_file() снова направит запрос на сервер и вернет false.
Строка 06 return true; никогда ничего не возвратит - функция уже выполнилась и вернула в переменную a false, больше возвращать некуда.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2017, 17:12
Новичок на форуме
Отправить личное сообщение для headmaster911 Посмотреть профиль Найти все сообщения от headmaster911
 
Регистрация: 17.04.2017
Сообщений: 2

Забавно, что никто не заметил
failure: function(data)
, в то время как должно быть
error: function(data)

Сообщение от ksa
Когда ответ получен но файл не готов - запустить повторную проверку.
Можно сразу... А можно с использованием setTimeout()...
Сообщение от headmaster911
но у меня постоянно подвисает страница (зацикливается скрипт)
Я имел ввиду, что не могу написать цикл. Вернее не мог. Теперь уже разобрался
Ответить с цитированием
  #5 (permalink)  
Старый 18.04.2017, 08:44
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,257

Сообщение от headmaster911
Забавно, что никто не заметил
Ты поймал нас!

Сообщение от headmaster911
Я имел ввиду, что не могу написать цикл.
Так я про цикл и не писал.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проверка формы не работает в ie begelme Javascript под браузер 6 13.08.2013 01:00
Помогите советом новичку ,плз. vovka_3000 jQuery 8 15.04.2012 10:16