объект и 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);
Или я чего то не понимаю? |
this при setInterval это window
|
в setInterval - да. в Callback - это ajax.
Но почему тогда this.time - тогда работает? ведь это же setInterval |
в 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
});
|
| Часовой пояс GMT +3, время: 06:11. |