Цитата:
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 сек остановка
результаты одинаковые |
Цитата:
|
:-E
развернуть ->
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);
|
Мне кажется вы меня не поняли. Объясню подробнее.
вот код (сюда ваш внедрил уже):
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 я пока что не силен. |
Цитата:
самый лучший способ ( для обновления переменной) - это написать метод 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 - поэтому я задал вопрос здесь. |
Цитата:
|
Цитата:
|
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. |
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 секунды. Никак не получается это реализовать. Прошу помощи. |
| Часовой пояс GMT +3, время: 09:23. |