здравствуите
через jquery получаю некаторие данние из .json фаила
var x1;
$.getJSON("mydata.json").success ( function (myJson) {
x1 = myJson["Positions"][1]["x"];
alert(x1);
}
);
так работает, но переменная x1 не видно вне $.getJSON-а, то есть так виведит "undefined"
var x1;
$.getJSON("mydata.json").success ( function (myJson) {
x1 = myJson["Positions"][1]["x"];
}
);
alert(x1);
вопрос: как сделать переменная х1 глобалним ?
Спустя 3 минуты, 42 секунды (9.05.2012 - 22:58) sharki написал(а):
dadli
О, как я зае*ся с этой проблемой, единственное что на ум пришло, это сделать callback функцию и т.д...
Если есть альтернативы, поведайте и мне, пожалуйста
О, как я зае*ся с этой проблемой, единственное что на ум пришло, это сделать callback функцию и т.д...
Если есть альтернативы, поведайте и мне, пожалуйста

Спустя 14 минут, 19 секунд (9.05.2012 - 23:13) Oyeme написал(а):
you can set global variables using window.variablename
window.test = 777;
Спустя 1 минута, 37 секунд (9.05.2012 - 23:14) sharki написал(а):
Oyeme
А ты пробовал так?) Я вроде пробовал, давно было, не получалось
А ты пробовал так?) Я вроде пробовал, давно было, не получалось
Спустя 8 минут, 36 секунд (9.05.2012 - 23:23) dadli написал(а):
оо.. сеичас стал известно что област видимости тут не причём, перемення глобалная, просто я виведил её пока сервер дал ответ, то есть х1 не определенная при моменте, когда виведил её.
Спустя 1 минута, 8 секунд (9.05.2012 - 23:24) sharki написал(а):
dadli Так получилось как сказал Oyeme ? Если да, покажи код)
Если получилось, то я нуб..
Если получилось, то я нуб..
Спустя 36 секунд (9.05.2012 - 23:24) Oyeme написал(а):
Таким образом мы определаям пространство.
Глобальные переменныйзло,но если нет другово выхода, то можно.
В firebug загляните в свойстов DOM->window
Global variables
window - These variables can be used anywhere in your script at any time.
window.variable syntax.

В firebug загляните в свойстов DOM->window
Global variables
window - These variables can be used anywhere in your script at any time.
window.variable syntax.
Спустя 40 секунд (9.05.2012 - 23:25) Игорь_Vasinsky написал(а):
jq или js - разницы то нет... я глобальные объявляю чтоб не мудохаться с аргументами.
Спустя 19 минут, 49 секунд (9.05.2012 - 23:45) dadli написал(а):
sharki
Oyeme сказал так обявить переменню глoбалним да ? но перемення уже глобалная, вот так видно что он глобалная:
так виведит резултат, но ето не решит проблему, пока что я придумал, вся код надо вставить внутри $.getJSON-а и так не будит проблеми, но может есть лучшие решении ?
Oyeme сказал так обявить переменню глoбалним да ? но перемення уже глобалная, вот так видно что он глобалная:
$.getJSON("mydata.json").success ( function (myJson) {
x1 = myJson["Positions"][1]["x"];
}
);
i_id = setInterval (
function () {
if (x1 != undefined) {
alert(x1);
clearInterval(i_id);
}
},100
);
так виведит резултат, но ето не решит проблему, пока что я придумал, вся код надо вставить внутри $.getJSON-а и так не будит проблеми, но может есть лучшие решении ?
Спустя 49 секунд (9.05.2012 - 23:46) killer8080 написал(а):
Цитата (sharki @ 9.05.2012 - 22:24) |
dadli Так получилось как сказал Oyeme ? |
У него проблема была не в области видимости, он же уже сам ответил на свой вопрос.

Любая глобальная переменная в JS является свойством объекта WINDOW, любая переменная объявленная без ключевого слова var является глобальной.
Спустя 7 часов, 9 минут, 17 секунд (10.05.2012 - 06:55) sharki написал(а):
А ну да, логично же, эт я туплю...ведь JS асинхронен..
Надо сделать calback функцию
Ну или, если получится (надо тестировать)
Надо сделать calback функцию
function go(fnc){
$.getJSON("mydata.json").success ( function (myJson) {
var x1 = myJson["Positions"][1]["x"];
if(fnc){
fnc(x1);
}
});
}
Ну или, если получится (надо тестировать)
function go(x){
alert(x);
}
$.getJSON("mydata.json").success ( function (myJson) {
var x1 = myJson["Positions"][1]["x"];
fnc(x1);
});
Спустя 3 часа, 5 минут, 20 секунд (10.05.2012 - 10:00) Zerstoren написал(а):
Тут прикол в другом.
Асинхронность AJAX.
Тоже как-то столкнулся. Пришлось решить с помощью синхронного запроса.
Браузер подвисал на пару мс, но в целом пользователю не заметно было.
По этому либо выполняйте действие в callback`e, либо делайте синхронный запрос.
Вот такая бида JS и AJAX
Асинхронность AJAX.
Тоже как-то столкнулся. Пришлось решить с помощью синхронного запроса.
Браузер подвисал на пару мс, но в целом пользователю не заметно было.
По этому либо выполняйте действие в callback`e, либо делайте синхронный запрос.
Вот такая бида JS и AJAX
Спустя 2 часа, 1 минута, 39 секунд (10.05.2012 - 12:02) Гость_Michael написал(а):
Цитата (Zerstoren) |
Пришлось решить с помощью синхронного запроса |
FFFFFFFFUUUUUUUUUUU...
Спустя 1 час, 14 минут, 4 секунды (10.05.2012 - 13:16) killer8080 написал(а):
Цитата (Zerstoren @ 10.05.2012 - 09:00) |
Тоже как-то столкнулся. Пришлось решить с помощью синхронного запроса. Браузер подвисал на пару мс, но в целом пользователю не заметно было. |
Если у юзера узкий канал, или исчерпано max connection сервера, задержка будет весьма заметной, при этом остальные скрипты то же тормознут. Такие вещи нужно избегать.
_____________
когда чарли чаплин принимал участие в конкурсе: "клон чарли чаплинов", то чарли занимал третю позицию.