Für mich persönlich stellt JavaScript seit einiger Zeit immer wieder eine große Herausforderung dar. Insbesondere seit in Titanium Appcelerator das JSCommon Framework zum Einsatz kommen darf und soll. Meine erste iPad-App soll nun endlich fertig werden und ich stand vor der Herausforderung innerhalb einer Klasse setInterval für periodische Aufgaben benutzen zu wollen. Jede Klassen-Instanz sollte natürlich seinen eigenen Timer benutzen. Hier ist meine Lösung – runtergekocht auf eine Minimal-App bestehend aus der obligatorischen app.js und dem Module processingQueue.js:
Als Screenshots:


Und hier nochmal als Quelltext zum rauskopieren
Die Datei app.js instanziert zwei Objekte der Klasse processingQueue
- // App.js
- var pq = require('modules/processingQueue');
-
- Ti.API.info("Erstelle PQ1:");
- PQ1 = new pq.processingQueue(200, "-Eins");
- Ti.API.info("Erstelle PQ2:");
- PQ2 = new pq.processingQueue(500, "#Zwei");
Das JSCommon Module processingQueue implementiert die gleichnamig Klasse, die ein Timer-Objekt initialisiert:
- // JavaScript Object Class processin Queue using JSCommon Modules
-
- // Constructor:
- function processingQueue(timerInterval, theName) {
- this.myName = theName;
-
- if(!(this.queueTimerHandle)) {
- var holder = this;
- this.queueTimerHandle = setInterval( function() {
- holder.applicationQueueProcessing(holder);
- }, timerInterval);
- }
- };
-
- // This function is called timer based
- processingQueue.prototype.applicationQueueProcessing = function(me) {
- Ti.API.info("Processing Queue Name:" + me.myName);
- }
-
- exports.processingQueue = processingQueue;
Ich hoffes es hilft jemandem…



Recent Comments