Цитата:
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, время: 03:16. |