Узнать, когда четко пройдет по всем друзьям

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
vasXL
Сообщения: 32
Зарегистрирован: 13 ноя 2011, 20:48

Узнать, когда четко пройдет по всем друзьям

Сообщение vasXL »

Код, который проходится по всем друзьям, соблюдая интервал по 3 запроса в секунду. Нужно сначала пройтись, занося в массив id и город каждого друга в массив, а потом отправить массивы в базу. Почему именно таким образом я собираю города друзей, а не сразу одним методом не спрашивайте, мне так нужно. Но проблема в том, что я не знаю, как сделать, чтобы post происходил четко, когда по всем друзьям прошлись. У меня не получается это сделать, так как само число данных в массиве не предсказуемо, потому что если например друг удален, то ничего не заносится. Пробовал ставить счетчик(как в коде ниже), прибавляя по одному при каждом запросе и отправке post, когда счетчик равен количество друзей. Но это не получается, массив каждый раз разный заносится, видимо потому что запросы асинхронные. Нужно сделать, чтобы POST происходил четко, когда прошлись по всем друзьям. Очень буду признателен за помощь.

Код: Выделить всё

<html><head><script src="js/jquery-1.8.3.min.js" charset="windows-1251"></script><script src="http://vkontakte.ru/js/api/xd_connection.js?2" type="text/javascript"></script><script type="text/javascript" charset="cp1251" >window.onload = (function() {    VK.init(function() { VK.api("users.get", {user_ids:count,fields:"uids"}, function(data) {        var friends_data = data.response;var mas1 = [];var mas2 = [];    shet = 0;function getMutual(friendid){shet += 1;VK.api("friends.get",{user_id:friendid,fields:"city"},function(data) {  mas1.push(friendid); mas2.push(data.response[0].city);if(shet == friends_data.length){ $.post("vbazu.php", { mas1: mas1, mas2:mas2, }, function(data) {  } );}     }     });    } count = 0;function next_three() {  getMutual(friends_data[count].uid);  getMutual(friends_data[count+1].uid);  getMutual(friends_data[count+2].uid);  count += 3;setTimeout(next_three, 1000);}setTimeout(next_three, 1000);    });   });    }); </script></head><body></body></html>
vasXL
Сообщения: 32
Зарегистрирован: 13 ноя 2011, 20:48

Re: Узнать, когда четко пройдет по всем друзьям

Сообщение vasXL »

Разобрался
Koval
ЗАБАНЕН!
Сообщения: 51
Зарегистрирован: 17 апр 2013, 15:26

Re: Узнать, когда четко пройдет по всем друзьям

Сообщение Koval »

не советую использовать полностью js
vasXL
Сообщения: 32
Зарегистрирован: 13 ноя 2011, 20:48

Re: Узнать, когда четко пройдет по всем друзьям

Сообщение vasXL »

Koval, что вы имеете ввиду? Что например можно использовать?
Koval
ЗАБАНЕН!
Сообщения: 51
Зарегистрирован: 17 апр 2013, 15:26

Re: Узнать, когда четко пройдет по всем друзьям

Сообщение Koval »

vasXL,частично php,частично js
vasXL
Сообщения: 32
Зарегистрирован: 13 ноя 2011, 20:48

Re: Узнать, когда четко пройдет по всем друзьям

Сообщение vasXL »

Koval, а как здесь можно еще php использовать? Блин, надеюсь на помощь от кого-нибудь, хоть какую-то подсказку, потому что этот код встал и че-то все молчат форуме...
Ответить