Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.04.2011, 20:17
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 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.
Ответить с цитированием
  #12 (permalink)  
Старый 04.04.2011, 21:27
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 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 сек запрос прекращался..... у меня же проблема описанная выше.
Ответить с цитированием
  #13 (permalink)  
Старый 04.04.2011, 22:16
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 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);
Ответить с цитированием
  #14 (permalink)  
Старый 04.04.2011, 22:26
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 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 я пока что не силен.
Ответить с цитированием
  #15 (permalink)  
Старый 04.04.2011, 22:50
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 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);



откуда у вас этот объект?
Ответить с цитированием
  #16 (permalink)  
Старый 04.04.2011, 22:56
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 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 - поэтому я задал вопрос здесь.
Ответить с цитированием
  #17 (permalink)  
Старый 05.04.2011, 08:46
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,577

Сообщение от zeraid
Скорее всего я не владею некоторыми операциями JS
и не говори Про переменные почитай, области видимости, глобальные переменные, ответ аякс-запроса. Сначала то есть, как я и советовал ...
Ответить с цитированием
  #18 (permalink)  
Старый 05.04.2011, 13:31
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 27.03.2011
Сообщений: 75

Сообщение от micscr Посмотреть сообщение
и не говори Про переменные почитай, области видимости, глобальные переменные, ответ аякс-запроса. Сначала то есть, как я и советовал ...
об этом я в курсе. я имею в виду что могу не знать некооторые функции и тп ибо норм документации по JS нет нигде.
Ответить с цитированием
  #19 (permalink)  
Старый 05.04.2011, 13:49
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 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.
Ответить с цитированием
  #20 (permalink)  
Старый 05.04.2011, 14:16
Аспирант
Отправить личное сообщение для zeraid Посмотреть профиль Найти все сообщения от zeraid
 
Регистрация: 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 секунды.

Никак не получается это реализовать. Прошу помощи.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
как присвоить id тексту Arucard Общие вопросы Javascript 7 06.03.2011 15:40
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25
Как присвоить переменной содиржимое тега h1 Leonline Общие вопросы Javascript 1 19.06.2008 22:27
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54