Математические действия с json данными

476
.
Собственно сам сабж, нужно произвести математические действия с json данными полученными посредством
$.ajax({
type: "POST",
url: 'site.ru',
data: '',
dataType: "json",
success: function(response) {

var rest = response.goto.res;
                $('#resull').text(rest);
           }
        
});

$.ajax({
type: "POST",
url: 'site2.ru',
data: '',
dataType: "json",
success: function(response) {

var rest2 = response.goto.res2;
                $('#resull2').text(rest2);
           }
        
});

Так вот, нужно произвести математику с resul и resul2 например прибавление или вычитание!
.
(\/)____o_O____(\/)
Энштеин, ну перемути в массивы и работай
.
(\/)____o_O____(\/)
$a1 = json_decode($json1, true);
$a2 = json_decode($json2, true);
.
# Koenig (18.12.2014 / 22:03)
$a1 = json_decode($json1, true);
$a2 = json_decode($json2, true);
Да на php я знаю как это сделать
Это нужно как то сделать в одном файле и том же файле js что и сами запросы выполняются
.
reaper
Если я правильно понял, проблема в том, что запросы асинхронные.
И вот так сразу получить и обработать данные нельзя.

Решение:
Дождаться результата первого запроса и выполнить второй.
После того, как получен ответ на второй запрос, выполняем обработку полученных данных.
Для этого выносим один из запросов в success другого. И в success вынесенного запроса выполняем операции с данными.

Можно еще сделать async: false, но, вроде как, так делать не рекомендуется.
Я уже не помню почему, надо погуглить.
.
# reaper (19.12.2014 / 00:14)
Если я правильно понял, проблема в том, что запросы асинхронные.
И вот так сразу получить и обработать данные нельзя.

Решение:
Дождаться результата первого запроса и выполнить второй.
После то
ДА, эти 2 запроса исполняются в одной функции setInterval(function(){ }, 2000);
Так вот нужно получить данные и обработать их!
.
Ксакеп
произвести математику
Во-первых, Энштеин, запомни: математику не производят.

Во-вторых, reaper уже все расписал. Единственное что, я не понимаю, зачем дожидаться первого запроса, если запросы асинхронные.

Reaper, async false ~ синхронному запросу, то естьбраузер прерывает все потоки, и получается дикая пауза.
.
# XakepPRO (19.12.2014 / 00:50)
Во-первых, Энштеин, запомни: математику не производят.

Во-вторых, reaper уже все расписал. Единственное что, я не понимаю, зачем дожидаться первого запроса, если запросы асинхронные.

Reaper, asy
В общем мне нужно вытащить данные с result и разделить на то что вернет result2
Причем это нужно сделать именно в том же js файле что и сами запросы, или может как то можно одним запросом обратится к 2 адресам и уже непосредственно там и произвести вычсисления
.
completeФункция
Функция, которая исполняется всякий раз после завершения запроса AJAX (после того, как выполнились success и error). В качестве аргументов функция принимает объект XMLHttpRequest и строку, описывающую тип запроса. Это событие Ajax.
.
XakepPRO, Я знаю, что это означает, просто забыл, почему так никто не делает.

Воот, нагуглил таки

https://developer.mozilla.org/ ... uests
Starting with Gecko 30.0 (Firefox 30.0 / Thunderbird 30.0 / SeaMonkey 2.27), synchronous requests on the main thread have been deprecated due to the negative effects to the user experience.


А дожидаться нужно потому что надо же как-то отловить момент, когда оба запроса завершились. Я не знаю, как ещё можно это сделать. Разве что эвенты заюзать.
Всего: 11