Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите Важно (https://javascript.ru/forum/misc/22474-pomogite-vazhno.html)

HackerSniper 21.10.2011 13:22

Помогите Важно
 
fuction INITDATA(data){

if(data.response){
myvar ='CAT';
}

}

alert(myvar);



как тут передать мне вар учитывая что запрос data.respone несразу приходит?
мб callback какойнибь итд?

HackerSniper 21.10.2011 13:31

проблема грубо говоря ав том что Компиляция не умеет ждать. а надо заставить под мой запрос ждать

компиляция побежала компилировать код.. добежала до моего if(data.response){ - он кинул вверх мячь.. (запрос и ждет когда обратно полетит) а компиляция Дальше побежала. так вот ей надо сказать стоп и жди его data.response

HackerSniper 21.10.2011 13:32

если бы это было правдой я бы битой отфгачил компиляцию чтобы она научилась ждать сука

Magneto 21.10.2011 13:43

function readydata (readymyvar) {
  alert(readymyvar);
}

function initdata (data) {
  if (data.response) {
    myvar = 'cat';
    readydata(myvar);
  }
}

HackerSniper 21.10.2011 14:07

блин допишу код


html += '<div>';

fuction INITDATA(data){

if(data.response){
myvar ='CAT';
}

}


html += myvar'; - вот здесь не передается

html += '</div>';

HackerSniper 21.10.2011 14:10

Спасите меня кто нибудь аааааа

GuardCat 21.10.2011 14:46

Если нужно ждать, пока data.response не станет true, вставьте перед if:
while(!data.response){
	void("");
}

ksa 21.10.2011 14:47

Цитата:

Сообщение от HackerSniper
html += myvar'; - вот здесь не передается

Так ты и функцию INITDATA() не вызываешь...

html = '<div>';
INITDATA()
html += myvar; // - таки передается
html += '</div>';
alert(html);

function INITDATA(data) {
	myvar ='CAT';
}


В твоём, даже таком маленьком огрызке есть ошибки синтаксиса...

ksa 21.10.2011 14:50

Цитата:

Сообщение от HackerSniper
html += myvar'; - вот здесь не передается

Или так...

html = '<div>';
(function (data) {
	myvar ='CAT';
})();
html += myvar; // - таки передается
html += '</div>';
alert(html)

HackerSniper 21.10.2011 15:15

а где имя функц INITDATA????????

HackerSniper 21.10.2011 15:19

в если так


html = '<div>';
INITDATA()
html += myvar; // - таки передается
html += '</div>';
alert(html);

function INITDATA(data) {
myvar ='CAT';
}


то выйдет ошибка где переменная if(data.response){

HackerSniper 21.10.2011 15:21

Цитата:

Если нужно ждать, пока data.response не станет true, вставьте перед if:
while(!data.response){
void("");
}
+ пробую

HackerSniper 21.10.2011 15:24

сайт ужасно после этого зависает почему?

HackerSniper 21.10.2011 15:29

есть кто инбудь кто готов посмотреть по тим виер и помочь решить проблему?(

GuardCat 21.10.2011 15:41

Виснет, потому что предложенный вариант как раз и тормозит компиляцию, загружая браузер важным делом (выполнение void("")) на время, пока data не true. Чтобы было асинхронно, используйте AJAX (здесь я не смогу помочь, увы). Как вариант, чтобы не тормозило, можно попробовать так:

var html;
var wData=setTimeOut(INITDATA, 500, data);
function INITDATA(data) {
	if (data.response) {
		clearTimeout(wData);
		myvar = 'CAT';
		html += 'myvar'; 
	}
}

Здесь проверка происходит не непрерывно, а раз в полсекунды.
Важно: переменная html должна быть глобальна.

HackerSniper 21.10.2011 15:47

кажется я разобрался со своей проблемой. - ВСЕМ КТО ПРИНЯЛ В ПОМОЩИ МНЕ УЧАСТИЕ СПАСИБО БОЛЬШОЕ . ДЛЯ МЕНЯ ЭТО НЕОПИСАТЬ КАК МНОГО ЗНАЧИЛО

HackerSniper 21.10.2011 15:48

GuardCat,
+10000000000000


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