Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   getJSON странно возвращает данные (https://javascript.ru/forum/misc/40093-getjson-stranno-vozvrashhaet-dannye.html)

рони 23.07.2013 21:29

Sudno,
все нужные строки ставьте после 8 когда придёт ответ тогда и выведется всё что нужно --
function GetData() {
			$.getJSON("dataset.json",function(obj_dat){
				for (var i = 0; i < obj_dat.length; i++) {
					if (obj_dat[i]["type"] == "list") { Lists = obj_dat[i]["list"]; }
					if (obj_dat[i]["type"] == "node") { Nodes = obj_dat[i]["list"]; }
					if (obj_dat[i]["type"] == "elem") { Elems = obj_dat[i]["list"]; }
				}
			$("#optionbar").append("<b>1: "+Lists.length+Nodes.length+Elems.length+"</b><br>");
            $("#optionbar").append("<b>2: "+Lists.length+Nodes.length+Elems.length+"</b><br>");

});

		};


ещё раз -> запрос пошёл -- браузер занимается своими делами а не ждёт -- пришёл ответ -- есть возможность обработает или поставит в очередь.
-- тонкости асинхронного программирования

Sudno 23.07.2013 22:01

рони,
А есть возможность отдельно отследить момент прихода ответа? Обработчиком каким или еще чем?

рони 23.07.2013 22:09

Цитата:

Сообщение от Sudno
А есть возможность отдельно отследить момент прихода ответа? Обработчиком каким или еще чем?

а когда по вашему сработает function(obj_dat){ когда придёт ответ она и сработает

рони 23.07.2013 22:11

Sudno,
jQuery.getJSON(url,[data],[callback])
callback(data, textStatus, jqXHR) — пользовательская функция, которая будет вызвана после ответа сервера.


Часовой пояс GMT +3, время: 03:16.