Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2012, 18:47
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

объект и setInterval
Ребята, подскажите как правильно оформить функцию. Чувствую что неправильно написано. хотя работает.

var poller = {
	url:		'get.php',
	time:	5000,
	cmd:	'polling',
	isStarted:	false,

	start: function () {
		this.isStarted=true;
	
		setInterval(function() {poller.get({ "cmd" : poller.cmd },clb);}, this.time);
		function clb(res){console.log(res);}		
	
	},

	get: function (d, callback,ajerror) {
		if(!callback) callback = $.noop;
		if(!ajerror) ajerror = $.noop;

		$.ajax({type: 'GET',url: this.url,
			data : d,
			success : callback,
			error:  ajerror
		});
	}
}


Вместо poller.get и poller.cmd - там хотелось бы иметь this.get и this.cmd соответственно.
Включается poller.start();

и почему не работает вариант следующий:

setInterval(this.get({ "cmd" : this.cmd },clb), this.time);

Или я чего то не понимаю?

Последний раз редактировалось posta, 13.03.2012 в 18:56.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2012, 18:58
Server
Отправить личное сообщение для Rootpassword Посмотреть профиль Найти все сообщения от Rootpassword
 
Регистрация: 26.09.2011
Сообщений: 252

this при setInterval это window
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2012, 19:09
Кандидат Javascript-наук
Отправить личное сообщение для posta Посмотреть профиль Найти все сообщения от posta
 
Регистрация: 27.08.2010
Сообщений: 115

в setInterval - да. в Callback - это ajax.

Но почему тогда this.time - тогда работает? ведь это же setInterval

Последний раз редактировалось posta, 13.03.2012 в 19:13.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2012, 20:02
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

в jquery усть функция прокси
setInterval( $.proxy(this.get({ "cmd" : this.cmd },clb), this), this.time)

в ajax есть параметр context
$.ajax({type: 'GET',url: this.url,
            data : d,
            success : callback,
            error:  ajerror,
            context: this
        });
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать ссылку на объект а не объект возникновения события Blazze Events/DOM/Window 0 10.10.2011 23:45
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 21:09
Можно ли удалить клонированный объект Евгений_86 jQuery 6 13.04.2011 11:54
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 16:38
clearInterval и setInterval из разных локаций. Bakuryu Events/DOM/Window 6 27.07.2008 21:45