afterLoad
Auteur: GJ2086 - 28 augustus 2011 - 03:42 - Gekeurd door: Koen - Hits: 5376 - Aantal punten: 3.00 (1 stem)
Voer methode2 pas uit nadat methode1 klaar is met laden.
Voorbeeld en documentatie van gebruik:
// Het object
testObject = function(){
var data = '';
// Methode met een vertraging
this.testMethod1 = function(){
// Geef aan dat testMethod1 bezig is met uitvoeren
process['testMethod1'] = true;
setTimeout(
(function(){
// Geef aan dat testMethod1 klaar is met uitvoeren
process['testMethod1'] = false;
data = 'This is some dummy content';
}), 3000
);
}
// Schrijf de waarde van data op het scherm
this.testMethod2 = function(){
document.write(data); // This is some dummy content
}
}
// Creeer een instantie van het object
object = new testObject();
// Voer de methode met de vertraging uit
object.testMethod1();
// Voer testMethod2 uit wanneer testMethod1 klaar is met uitvoeren
// Wanneer er geen gebruik wordt gemaakt van de afterLoad methode wordt er een lege string op het scherm geprint.
object.afterProcess(
'testMethod1',
(function(){
object.testMethod2();
})
);
// Het object testObject = function(){ var data = ''; // Methode met een vertraging this.testMethod1 = function(){ // Geef aan dat testMethod1 bezig is met uitvoeren process['testMethod1'] = true; setTimeout( (function(){ // Geef aan dat testMethod1 klaar is met uitvoeren process['testMethod1'] = false; data = 'This is some dummy content'; }), 3000 ); } // Schrijf de waarde van data op het scherm this.testMethod2 = function(){ document.write(data); // This is some dummy content } } // Creeer een instantie van het object object = new testObject(); // Voer de methode met de vertraging uit object.testMethod1(); // Voer testMethod2 uit wanneer testMethod1 klaar is met uitvoeren // Wanneer er geen gebruik wordt gemaakt van de afterLoad methode wordt er een lege string op het scherm geprint. object.afterProcess( 'testMethod1', (function(){ object.testMethod2(); }) );
|
Code: |
/**
* Extend all objects with the process property
*
* @author Gert-Jan Jansma <gj.jansma@gmail.com>
* @param Object Container for process names
*/
Object.prototype.process = {};
/**
* Extend all objects with the afterProcess Method
*
* @author Gert-Jan Jansma <gj.jansma@gmail.com>
* @param string processName Name of the process
* @param function fn Function to be executed after a process
* @param int interval Delay time in microseconds
*/
Object.prototype.afterProcess = function(processName, fn, interval){
var afterProcess = setInterval(
(function(){
if(process[processName] === false){
fn();
clearInterval(afterProcess);
}
}), ((interval) ? interval : 100)
);
};
/** * Extend all objects with the process property * * @author Gert-Jan Jansma <gj.jansma@gmail.com> * @param Object Container for process names */ Object.prototype.process = {}; /** * Extend all objects with the afterProcess Method * * @author Gert-Jan Jansma <gj.jansma@gmail.com> * @param string processName Name of the process * @param function fn Function to be executed after a process * @param int interval Delay time in microseconds */ Object.prototype.afterProcess = function(processName, fn, interval){ var afterProcess = setInterval( (function(){ if(process[processName] === false){ fn(); clearInterval(afterProcess); } }), ((interval) ? interval : 100) ); };
Download code (.txt)
|
|
Stemmen |
Niet ingelogd. |
|