Периодическое выполнение задачи в Sencha Touch - PullRequest
2 голосов
/ 07 марта 2012

Как надежно выполнять функцию каждые несколько секунд в Sencha Touch? Я использую следующий код для вызова функции через каждые 7 секунд:

var task = new Ext.util.DelayedTask(function() {
    function();
    task.delay(7000);
}, this);
task.delay(0);

Она работает на iPhone и на рабочем столе(хром), но у меня проблема с Android, то есть на Android он не работает.Я также попытался с помощью setInterval method & setTimeout .

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Вы пробовали с setTimeout?

http://www.w3schools.com/js/js_timing.asp

0 голосов
/ 12 октября 2012

С в этом блоге , немного изменено.

... так что вот тривиальный набор расширений класса Ext.util.Functions, которые предоставляютдля создания повторяющихся задач и простого управления ими.

Ext.apply(Ext.util, {  
  repeat: function(taskName, fn, millis, zeroDayExecution) {
    this.tasks = this.tasks || {};  
    if (zeroDayExecution)  
      fn();  
    return this.tasks[taskName] = window.setInterval(fn, millis);  
  },

  cancelRepeatingTask: function(taskName) {  
    if (this.tasks) {
      var id = this.tasks[taskName];  
      if (!Ext.isEmpty(id)) {  
        window.clearInterval(id);  
        delete this.tasks[taskName];  
      }
    }
  },

  cancelAllRepeatingTasks: function() {  
    if (this.tasks)  
    Object.keys(this.tasks).forEach(function(key) { 
                                    this.cancelRepeatingTask(key); }, 
                                    this);         
    }  
});

Пример вызова:

Ext.util.repeat('task1', function() { console.log('test'); }, 1000);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...