|
|
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Мне нужно заполнить массив данными из json. Запрос XHR. На статус запроса - функция. Вроде все хорошо, но после завершения работы функции, длина массива равна 0. Массив объявлен вроде бы в глобальной области. Непонятно, почему по завершении работы функции все результаты работы исчезают. Вот код самой функции: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:08 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Валисий, вызов alert("Length of idArray: "+acntArray.length) происходит до заполения массива, так как запрос асинхронный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:23 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Валисий, по шагам: 1. Вы инициализировали асинхронный запрос: xhttpMain.open('GET','acn_list.json',true); 2. Послали его серверу: xhttpMain.send(); 3. Вывели сообщение: alert("Length of idArray: "+acntArray.length). На момент вывода сообщение сервер ещё не прислал ответ. Учите матчасть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:26 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Спасибо, с алертом ясно. Дальше вот какой момент: я вызвал функцию, и хочу заполнить список данными. Код: javascript 1. 2. 3. Список заполняется нужным количеством строк, но сами данные везде одинаковы (т.е. везде одно и то же, соответствующее последней записи из json). Почему так? Я посмотрел информацию о замыканиях, но особо не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:34 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Валисий, А причем здесь вообще замыкания? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:46 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Валисий, замыкания тут не при чём. Вам надо не про них читать, а про то как создать двумерный массив в JavaScript. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:57 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Код: html 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. http://jsbin.com/xobovate/1/edit ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 11:57 |
|
||
|
Замыкания в JS
|
|||
|---|---|---|---|
|
#18+
Валисий, вот так надо переписать: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Ну и используйте лучше объекты в качестве элементов массива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2014, 12:05 |
|
||
|
|

start [/forum/topic.php?fid=22&msg=38661151&tid=1447022]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
152ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 445ms |

| 0 / 0 |
