Не приходят все результаты AJAX-запросов, работа через oAuth
До подключения oAuth все работало отлично. Схема такая:
Подключаем oAuth, посылаем запрос и получаем массив из 30 значений, сразу выводим список на экран.
Далее посылаются AJAX-запросы по каждому значению списка и результаты (после неких вычислений) выводятся на экран сразу по мере того как приходят (в коде в function funcSuccess). Но дело в том, что после подключения oAuth выводятся на экран не все ответы, хотя видно статус 200. В чем может быть проблема или как уменьшить нагрузку на код?
Вот модель кода:
include_once 'HTTP_OAuth-0.3.2/HTTP_OAuth-0.3.2/HTTP/OAuth/Consumer.php';
$access_token = $_SESSION['token'];
$access_token_secret = $_SESSION['token_secret'];
$consumer = new HTTP_OAuth_Consumer('key', 'secret', OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
$consumer->setToken($access_token);
$consumer->setTokenSecret($access_token_secret);
try {
$data_с = $consumer->sendRequest("https://openapi...", array(), "GET");
$json = $consumer->getLastResponse();
$consumer_1 = new HTTP_OAuth_Consumer_Response($json);
$body = $consumer_1->getBody();
$response_1 = json_decode($body);
$results_1 = $response_1->results;
} catch (OAuthException $e) {
error_log($e->getMessage());
error_log(print_r($consumer->getLastResponse(), true));
error_log(print_r($consumer->getLastResponseInfo(), true));
exit;
}
if (!empty($results_1)) {
// выводим массив значений на экран...
//...
//для передачи в js:
$json = (json_encode($arr);
}
?>
<script type="text/javascript">
$(document).ready (function () {
var name = eval('<?php echo $json;?>');
var r = 0;
//посылаем столько запросов сколько было значений в массиве
function myLoop () {
setTimeout(function () {
var word = name[r];
function funcSuccess (data) {
// вывод на экран результатов...
}
$.ajax({
url: 'test.php',
method: "POST",
dataType: 'JSON',
data: ({words: word, am_: r}),
success: funcSuccess,
error: function (error) {
console.log(error);
}
});
r++;
if (r < name.length) {
myLoop();
}
}, 1000)
}
myLoop();
});
</script>
Файл 'test.php' посылает запросы так же через oAuth:
<?php
// файл 'test.php' посылает запросы так же через oAuth
include_once 'HTTP_OAuth-0.3.2/HTTP_OAuth-0.3.2/HTTP/OAuth/Consumer.php';
$access_token = $_SESSION['token'];
$access_token_secret = $_SESSION['token_secret'];
$consumer = new HTTP_OAuth_Consumer('key', 'secret',
OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_URI);
$consumer->setToken($access_token);
$consumer->setTokenSecret($access_token_secret);
//запрос
try {
$data_с = $consumer->sendRequest("https://openapi....", array(), "GET");
$json = $consumer->getLastResponse();
$consumer_1 = new HTTP_OAuth_Consumer_Response($json);
$body = $consumer_1->getBody();
$response_2 = json_decode($body);
//все результаты (это обьект)
$results_2 = $response_2->results;
//print_r($listings);
} catch (OAuthException $e) {
error_log($e->getMessage());
error_log(print_r($consumer->getLastResponse(), true));
error_log(print_r($consumer->getLastResponseInfo(), true));
exit;
}
if (!empty($listings_2)) {
//проводим некие математические действия с результатами ...
// отправляем назад:
echo json_encode(array ("0" => $amou, "1" => $S,"2" => $S_V, "3" => $am_ ));
}
?>