getJSON странно возвращает данные
Есть функция с вызовом getJSON:
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>"); }; И есть кусок функции, вызываемой обработчиком: GetData(); $("#optionbar").append("<b>3: "+Lists.length+Nodes.length+Elems.length+"</b><br>"); В результате выполнения этого куска, выводится следующее: Код:
2: 000 |
а можно узресть dataset.json?? хоть чуть-чуть
|
Цитата:
[ { "type": "list", "list": [ { "name": "bup_list", "rus_name": "Список БУП" } ] }, { "type": "node", "list": [ { "name": "bup_2011", "rus_name": "БУП за 2011", "year": 2011, "list": "bup_list" } ] }, { "type": "elem", "list": [ { "name": "bup_1", "rus_name": "БУП 1138(2011)", "sma": 3870.98, "ecc": 2056.30, "per": 8796.91, "mae": 1747.96, "node": "bup_2011" }, ... ] } ] |
действительно такое наблюдается. когда используешь JSON.parse, то такого нет. Скорей всего сам jquery сам так себя ведет
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>1</title> </head> <body> <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> <script type="text/javascript"> var json = '[{"type": "list","list": [{"name": "bup_list","rus_name": "Список БУП"}]}]'; function GetData() { $.getJSON("dataset.json", function (obj_dat) { console.log(1); }); console.log(2); }; GetData(); </script> </body> </html> |
Sudno,
результат getJSON когда придёт тогда и вставится и это нормально |
Цитата:
|
Sudno,
вам просто надо вставлять 1 перед 2 если 1 формируется динамически -- используйте .prepend() или .prependTo() или сортируйте перед вставкой или после вставки |
Цитата:
|
Sudno,
я вас тоже непонимаю функция что привели в 1 посте -- сначала выполнит 10 строку -- потом неизвестно когда 8 строку - надеюсь это понятно? когда у вас сработает строка ("<b>3 понятия неимею, нет кода. |
рони,
Ну так мне вот надо гарантированно, чтобы 10 была после 8. |
Часовой пояс GMT +3, время: 04:19. |