04.04.2011, 20:17
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от zeraid
|
разобрался. вот так работает:
setInterval(function() {
var data1 = $.ajax({
type: "POST",
url: "/mnemo_1.php",
dataType: "text",
async: false,
success: function (data){data;},
error: function(){alert('Problem');}
}).responseText;
}, 3000);
var s1 = new draw2d.Server("any_pkey1", data1,"up");
workflow.addFigure(s1, 100,100);
|
function loop( callback ){
var t = setInterval(function(){
d = $.ajax({
type: "POST",
url: "/ajax.html", // локальный файл, там текст "GOOD"
dataType: "text",
async: false,
data: { func: 1 }
}).responseText;
callback( d );
},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000) // через 3 сек остановка
в консоли выводит GOOD три раза
тут не могу запустить (скрипты запускается в ифрейме и на testbin)
еще так
function loop( callback ){
var t = setInterval(function(){
$.ajax({
type: "POST",
url: "/ajax.html", // локальный файл, там текст "GOOD"
dataType: "text",
async: false,
data: { func: 1 },
error: function(){alert('Problem');},
success : function(data) { callback(data); }
}).responseText;
},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000) // через 3 сек остановка
результаты одинаковые
Последний раз редактировалось melky, 04.04.2011 в 20:25.
|
|
04.04.2011, 21:27
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
Сообщение от melky
|
function loop( callback ){
var t = setInterval(function(){
d = $.ajax({
type: "POST",
url: "/ajax.html", // локальный файл, там текст "GOOD"
dataType: "text",
async: false,
data: { func: 1 }
}).responseText;
callback( d );
},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000) // через 3 сек остановка
в консоли выводит GOOD три раза
тут не могу запустить (скрипты запускается в ифрейме и на testbin)
еще так
function loop( callback ){
var t = setInterval(function(){
$.ajax({
type: "POST",
url: "/ajax.html", // локальный файл, там текст "GOOD"
dataType: "text",
async: false,
data: { func: 1 },
error: function(){alert('Problem');},
success : function(data) { callback(data); }
}).responseText;
},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000) // через 3 сек остановка
результаты одинаковые
|
не очень понел что вы этим хотели сказать.... я тут вижу то, что вы просто сдлелали чтобы через 3 сек запрос прекращался..... у меня же проблема описанная выше.
|
|
04.04.2011, 22:16
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
развернуть ->
function loop( callback ){
/* интервал */
var t = setInterval(function(){
d = $.ajax({
type: "POST",
url: "/ajax.html", // локальный файл, там текст "GOOD"
dataType: "text",
async: false,
data: { func: 1 }
}).responseText;
callback( d );
},1000);
/*
каждую секунду будем отправлять запрос на файл И вызывать указанную в callback функцию
*/
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
// если сохраним t, сможем прекратить вызовы этим -> t.stop()
или вот, заинлайненная функция
развернуть ->
/*
каждую секунду берет файл с сайта и делам с содержимым , что хотим
*/
var t = setInterval(function(){
$.ajax({
type: "POST",
url: "/ajax.html", // локальный файл
dataType: "text",
async: false,
data: { func: 1 },
error: function(){alert('Problem');},
success : function(data) {
/* делаем,что хотим ! в data результат запроса*/
alert(data);
}
});
},1000);
/* остановить повтор */
clearInterval(t);
|
|
04.04.2011, 22:26
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
Мне кажется вы меня не поняли. Объясню подробнее.
вот код (сюда ваш внедрил уже):
function loop( callback ){
var t = setInterval(function(){
$.ajax({
type: "POST",
url: "/mnemo_1.php",
//data: "func=1",
dataType: "text",
async: false,
success: function (data){callback(data);},
error: function(){alert('Problem');}
}).responseText;},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000)
var s1 = new draw2d.Server("any_pkey1", СЮДА НАДО ВСТАВИТЬ ПЕРЕМЕННУЮ ИЗ AJAX,"up");
workflow.addFigure(s1, 100,100);
у меня создается объект в котором высвечивается температура, которая берется из аякс запроса. И мне надо чтобы она бралась каждые 3 секунды и выводилась в обект. ВНУТРЬ SUCCESS вставить судя по всему не выйдет ибо вместе с запросом будет создаватся еще один объект и тд.
И мне хотелось бы узнать как это можно реализовать ибо в JS я пока что не силен.
|
|
04.04.2011, 22:50
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
Сообщение от zeraid
|
Мне кажется вы меня не поняли. Объясню подробнее.
вот код (сюда ваш внедрил уже):
function loop( callback ){
var t = setInterval(function(){
$.ajax({
type: "POST",
url: "/mnemo_1.php",
//data: "func=1",
dataType: "text",
async: false,
success: function (data){callback(data);},
error: function(){alert('Problem');}
}).responseText;},1000);
this.stop = function(){ clearInterval(t); }
};//l
var t = new loop( console.log );
setTimeout( function(){t.stop();},3000)
у меня создается объект в котором высвечивается температура, которая берется из аякс запроса. И мне надо чтобы она бралась каждые 3 секунды и выводилась в обект. ВНУТРЬ SUCCESS вставить судя по всему не выйдет ибо вместе с запросом будет создаватся еще один объект и тд.
|
у вас создается объект, который принимает число. через аякс надо обновлять это число.
самый лучший способ ( для обновления переменной) - это написать метод update() внутри объекта,который принимает число.
потом через ajax-success вызывать update с parseInt(date) в качестве аргумента.
или же каждый раз создавать новый объект
setInterval(function(){
$.ajax({
type: "POST",
url: "/ajax.html", // локальный файл
dataType: "text",
async: false,
data: { func: 1 },
error: function(){alert('Problem');},
success : function(data) {
var s1 = new draw2d.Server("any_pkey1", data,"up");
workflow.addFigure(s1, 100,100);
}
});
},1000);
откуда у вас этот объект?
|
|
04.04.2011, 22:56
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
Сообщение от melky
|
у вас создается объект, который принимает число. через аякс надо обновлять это число.
самый лучший способ ( для обновления переменной) - это написать метод update() внутри объекта,который принимает число.
потом через ajax-success вызывать update с parseInt(date) в качестве аргумента.
или же каждый раз создавать новый объект
setInterval(function(){
$.ajax({
type: "POST",
url: "/ajax.html", // локальный файл
dataType: "text",
async: false,
data: { func: 1 },
error: function(){alert('Problem');},
success : function(data) {
var s1 = new draw2d.Server("any_pkey1", data,"up");
workflow.addFigure(s1, 100,100);
}
});
},1000);
откуда у вас этот объект?
|
Рад что наконец вы меня поняли.
draw2d.Server это просто картинка над которой пишется число. Если сделать так, как вы написали выше. То с каждым аякс запросом будет добавляться еще один объект.
Внутри объекта писать обновление числа не вариант ибо объектов у меня много и более того обновление числа для ВСЕХ объектов должно протекать в одном аякс запросе. Но пока я пытаюсь справится хоть с одним.
У меня звучал вопрос выше КАК мне ИЗ аякс запроса вывести то самое число которое он получает и просто подставить в свойства объекта draw2d.Server("any_pkey1", ВОТ СЮДА,"up");
Или как написать сам аякс запрос.
Скорее всего я не владею некоторыми операциями JS - поэтому я задал вопрос здесь.
|
|
05.04.2011, 08:46
|
|
Профессор
|
|
Регистрация: 10.09.2009
Сообщений: 1,577
|
|
Сообщение от zeraid
|
Скорее всего я не владею некоторыми операциями JS
|
и не говори Про переменные почитай, области видимости, глобальные переменные, ответ аякс-запроса. Сначала то есть, как я и советовал ...
|
|
05.04.2011, 13:31
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
Сообщение от micscr
|
и не говори Про переменные почитай, области видимости, глобальные переменные, ответ аякс-запроса. Сначала то есть, как я и советовал ...
|
об этом я в курсе. я имею в виду что могу не знать некооторые функции и тп ибо норм документации по JS нет нигде.
|
|
05.04.2011, 13:49
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
var t = "";
setInterval(function(){
$.ajax({
type: "POST",
url: "/mnemo_1.php",
//data: "func=1",
dataType: "text",
async: false,
success: function (data){data; t = data;},
error: function(){alert('Problem');}
}).responseText;},1000);
я имею в виду что-то в роде этого. То есть чтобы значение из аякса записалочь в t.
|
|
05.04.2011, 14:16
|
Аспирант
|
|
Регистрация: 27.03.2011
Сообщений: 75
|
|
function test(){
var t;
$.ajax({
type: "POST",
url: "/mnemo_1.php",
//data: "func=1",
dataType: "text",
async: false,
success: function (data){t = data;},
error: function(){alert('Problem');}
}).responseText;
return t;
};
var t = test();
var s1 = new draw2d.Server("any_pkey1", t,"up");
workflow.addFigure(s1, 100,100);
вот так заработало. Очень удивлен почему тоже самое не работало без использования функции.
Осталось одно - сделать тож самое раз в 3 секунды.
Никак не получается это реализовать. Прошу помощи.
|
|
|
|