Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 12.01.2011, 10:53
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

Переделал на массив
var dat = ["a"];
$.post("image2.php",{},function(data){
dat["a"] = data;
},'json');
alert(dat['a']);
this.smileys=eval(dat["a"]);


Без алерта не работает, хоть убей!!!
С НИМ все работает!!!
Народ!!! Научите, плиз, что не так делаю? как из функции изменить переменную?
Ответить с цитированием
  #12 (permalink)  
Старый 12.01.2011, 11:03
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

уххххх ты меня что не понимаешь?=)))
function(data){
dat["a"] = data;
} - эта функция вызывается только тогда, когда приходит ответ от сервера
this.smileys=eval(dat["a"]); - а это происходит тогда когда компилятор проходит про нему, то есть до того как придёт ответ от сервера, а алертом ты просто делаешь задержку, поэтому и без него не получается.
__________________
.
Ответить с цитированием
  #13 (permalink)  
Старый 12.01.2011, 11:13
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

Переделал на массив
var dat = ["a"];
        $.post("image2.php",{},function(data){
            dat["a"] = data;
        },'json');
        alert(dat['a']);
        this.element=eval(dat["a"]);


Теперь хочу передать просто строку и уже создать объект вне этой функции...
Но со строкой тоже самое. без алерта эта конструкция попрежнему не работает
Ответить с цитированием
  #14 (permalink)  
Старый 12.01.2011, 11:17
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

мдаааа, у меня нет слов.
Вы читать умеете?
__________________
.
Ответить с цитированием
  #15 (permalink)  
Старый 12.01.2011, 11:29
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

ух...
Ну все.. развернуто объяснил и я все понял...
получается, мне после этой строчки надо как-то сидеть и ждать, пока dat будет не undefined?
Как это лучше сделать?
Ответить с цитированием
  #16 (permalink)  
Старый 12.01.2011, 11:31
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

нет просто выполняйте все действия с ответом в самой функции.

$.post("image2.php",{},function(data){
ВОТ ТУТ Выполняйте все действия с ответом,
Можете вызвать другую функцию и передать ей данные
},'json');
__________________
.
Ответить с цитированием
  #17 (permalink)  
Старый 12.01.2011, 11:39
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

ммм... все работает...
но так понимаю, что если сервер затянет с ответом, то все...
код, который использует дальше эти данные, может их не получить...
а не знаете, есть ли возможность делать post в синхронном режиме?
чтобы, либо отвалился с ошибкой, либо после получения ответа от сервера?
Ответить с цитированием
  #18 (permalink)  
Старый 12.01.2011, 11:48
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

ananax,
нет вы не правильно поняли просто браузер не ждёт пока придёт ответ, если запрос асинхронный (в синхронном ждёт), а компилирует дальше.
__________________
.
Ответить с цитированием
  #19 (permalink)  
Старый 12.01.2011, 11:53
Интересующийся
Отправить личное сообщение для ananax Посмотреть профиль Найти все сообщения от ananax
 
Регистрация: 12.01.2011
Сообщений: 14

вот вот...
переделываю на просто $.ajax
там есть возможность заставить его работать в синхронном режиме.
Ответить с цитированием
  #20 (permalink)  
Старый 12.01.2011, 12:09
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

только в синхронном режиме, браузер будет зависать на время пока не придёт ответ от сервера.
__________________
.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение имени и выполнение функции в цикле infocean Общие вопросы Javascript 6 03.12.2010 18:11
максимальная длина переменной для js функции progger Общие вопросы Javascript 5 06.09.2010 15:14
Изменение и отображение значения переменной по клику Allan Stark Общие вопросы Javascript 1 25.04.2010 15:50
изменение текущего контекста функции vkovalev jQuery 13 16.03.2009 12:52
изменение переменной Ilja_ORDY Общие вопросы Javascript 3 09.09.2008 18:56