Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 20.12.2013, 16:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от danik.js
А кто даст гарантию что последний запрос завершится в последнюю очередь?
По большему счету, нет никакой гарантии, что вообще что-то запишется на сервере...
Ответить с цитированием
  #12 (permalink)  
Старый 20.12.2013, 16:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,218

Сообщение от danik.js
Мой вариант смотрел?
Да.
Но так вышло, что уже после своего ответа.
Ответить с цитированием
  #13 (permalink)  
Старый 20.12.2013, 17:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от ksa
По большему счету, нет никакой гарантии, что вообще что-то запишется на сервере...
Ну никто не мешает установить обработчик ошибок и как-то среагировать. Да и ошибка сервера - дело маловероятное, и не является штатным событием. Тогда как непоследовательность запросов - дело вполне обычное.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #14 (permalink)  
Старый 21.12.2013, 09:41
Интересующийся
Отправить личное сообщение для vas88811 Посмотреть профиль Найти все сообщения от vas88811
 
Регистрация: 20.12.2013
Сообщений: 22

Сообщение от danik.js Посмотреть сообщение
А кто даст гарантию что последний запрос завершится в последнюю очередь?

Есть такая штука как $.when, никогда не пользовался, думаю она тут в самый раз:

var deferreds = [];
for (var i=0; i<profilesCount1; i++) {
    deferreds[i] = $.post("vbazy1.php", {
        id: data.response[i].to_id,
        to_id: data.response[i].date,
        from_id: data.response[i].from_id,
        text: data.response[i].text
    });
}



$.when.apply($, deferreds).done(function() {
    location.href = "http://www.site.ru";
});


http://api.jquery.com/jQuery.when/
Вот это вариант работает, но как-то не стабильно. Почему-то переход происходит и не все данные успевают занестись в базу. То есть переход произошел и в базу занеслось где-то 80% от того, что должно быть и каждый раз по-разному. С чем это может быть связано?

Последний раз редактировалось vas88811, 21.12.2013 в 09:52.
Ответить с цитированием
  #15 (permalink)  
Старый 21.12.2013, 10:18
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от vas88811
С чем это может быть связано?
Не знаю. $.when гарантированно ждет пока завершатся все запросы. Я даже эксперимент провел, чтобы проверить это.
Может сервер отклоняет некоторые запросы, например из-за большой нагрузки? profilesCount1 - большое число?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #16 (permalink)  
Старый 21.12.2013, 10:35
Интересующийся
Отправить личное сообщение для vas88811 Посмотреть профиль Найти все сообщения от vas88811
 
Регистрация: 20.12.2013
Сообщений: 22

Сообщение от danik.js Посмотреть сообщение
Не знаю. $.when гарантированно ждет пока завершатся все запросы. Я даже эксперимент провел, чтобы проверить это.
Может сервер отклоняет некоторые запросы, например из-за большой нагрузки? profilesCount1 - большое число?


profilesCount1 получается 100. Там цикл работает, он берет по 100 сколько потребуется раз. В моем случае например у меня 716 записи всего. Но заносится несколько меньше каждый раз, причем число всегда разное. А без перехода на url все четко работает. Каждый раз все 716
Ответить с цитированием
  #17 (permalink)  
Старый 21.12.2013, 12:44
Интересующийся
Отправить личное сообщение для vas88811 Посмотреть профиль Найти все сообщения от vas88811
 
Регистрация: 20.12.2013
Сообщений: 22

Заработало нормально. Спасибо. Видимо не успевало иногда из-за нагрузки.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести изображение после ввода URL без перезагрузки страницы Delfiniys Элементы интерфейса 5 18.10.2013 11:41
Переход на страницу после окончания проигрывания bohdantheone Общие вопросы Javascript 7 03.12.2011 06:59
Водяной знак на fancybox bobrina Общие вопросы Javascript 1 03.06.2011 21:11
переход на выбор сайт через поле ввода url (как убрать функцию "открыть все") ? rashid86 Элементы интерфейса 1 31.03.2011 14:54
Узнать url после перенаправления ipevgeny AJAX и COMET 0 05.11.2009 00:18