Red de conocimiento informático - Material del sitio web - Cómo usar temporizadores en systemd

Cómo usar temporizadores en systemd

En javascript, existen dos funciones especiales para los temporizadores, son:

1. Temporizador de cuenta regresiva: timename=setTimeout("function();", delaytime

2. Temporizador de bucle: timename=setInterval("function();", delaytime

1. Descripción general del temporizador

Objeto de ventana Se proporcionan dos métodos para lograr el efecto de temporizador, a saber, window.setTimeout() y window.setInterval. El primero puede hacer que un fragmento de código se ejecute después de un tiempo específico, mientras que el segundo puede hacer que un fragmento de código se ejecute una vez cada vez especificado. Sus prototipos son los siguientes:

window.setTimeout(expresión, milisegundos); window.setInterval(expresión, milisegundos);

Entre ellos, la expresión puede ser un fragmento de código encerrado en comillas, también puede ser el nombre de una función. Cuando llegue el momento especificado, el sistema llamará automáticamente a la función. Cuando se usa el nombre de la función como identificador de llamada, no puede tomar ningún parámetro cuando se usa una cadena. parámetros que se pasarán en él. El segundo parámetro de los dos métodos es milisegundos, que representa el número de milisegundos para el retraso o la ejecución repetida. Los dos métodos se presentan a continuación.

Usar SetInterval es muy similar a configurar la función de retardo setTimeout. setTimeout se utiliza para retrasar un período de tiempo antes de realizar una operación.

setTimeout("function", time) establece un objeto de tiempo de espera

setInterval("function", time) establece un objeto de tiempo de espera

setInterval se repite automáticamente. setTimeout no se repetirá.

clearTimeout(object) borra el objeto setTimeout

clearInterval(object) borra el objeto setInterval

Utilice un temporizador para implementar la ejecución diferida de JavaScript o repetición.

2. Uso específico

1. Método window.setTimeout

Este método puede retrasar la ejecución de una función, por ejemplo:

función hello(){ alert("hello } window.setTimeout(hello, 5000) ;

Este código hará que se muestre el cuadro de diálogo "hola" 5 segundos después de abrir la página. La última oración también se puede escribir como:

window.setTimeout("hello()", 5000

Los lectores pueden apreciar sus diferencias, lo cual también ocurre en la ventana. .setInterval naturaleza del método.

Si cancela la ejecución retrasada antes de que se alcance el período de retraso, puede utilizar el método window.clearTimeout(timeoutId), que recibe una identificación que representa un temporizador.

Esta identificación es devuelta por el método setTimeout, por ejemplo:

function hello(){ alert("hello"); var id=window.setTimeout(hello, 5000); ) { window.clearTimeout(id); }

De esta manera, si desea cancelar la visualización, solo necesita hacer clic en cualquier parte de la página y se ejecutará el método window.clearTimeout. para que se cancele la operación de tiempo de espera.

2. Método window.setInterval

Este método hace que se llame a una función cada vez determinado y es un método muy común. Si desea cancelar la ejecución programada, similar al método clearTimeout, puede llamar al método window.clearInterval. El método clearInterval también recibe un valor devuelto por el método setInterval como parámetro. Por ejemplo:

//Definir una llamada que se ejecutará repetidamente var id=window.setInterval("somefunction", 10000); //Cancelar la ejecución programada de window.clearInterval(id); >

3. Ejercicio de demostración

El código anterior solo se utiliza para ilustrar cómo cancelar una ejecución programada. De hecho, el método setInterval debe usarse en muchas ocasiones. A continuación diseñaremos un cronómetro para introducir el uso de la función setInterval: el cronómetro incluirá dos botones y un cuadro de texto para mostrar la hora. Cuando se hace clic en el botón de inicio, el cronometraje comienza y la unidad mínima es 0,01 segundos. Al hacer clic nuevamente en el botón, se detendrá el cronometraje y el cuadro de texto muestra el tiempo transcurrido. Se utiliza otro botón para restablecer la hora actual a cero.

El código de implementación es el siguiente:

lt; htmlgt; headgt; lt; asp" gt; lt; tipo de entrada="texto" valor="0" nombre="txt1"/gt; lt; tipo de entrada="botón" valor="Inicio" nombre="btnStart"/gt; lt; tipo de entrada =" botón" valor="Restablecer" nombre="btnReset"/gt; lt;/formgt;/bodygt;/htmlgt; lt;script language="JavaScript" tipo="text/javascript"gt; !-- //Obtener los campos del formulario en el formato var txt=document.forms[0].elements["txt1"]; document.forms[0].elements["btnReset"] //Definir la identificación del temporizador var id; //El valor aumenta en 1 cada 10 milisegundos var seed=0; basado en el texto del botón Operación actual if(this.value=="Start"){ //Hacer que el texto del botón cambie para detener this.value="Stop" //Hacer que el botón de reinicio no esté disponible btnReset.disabled=true; /Configura el temporizador, salta cada 0,01 s id=window.setInterval(tip, 10); }else{ //Haz que el texto del botón cambie para iniciar this.value="Start" //Haz que el botón de reinicio esté disponible btnReset.disabled =false; // Cancelar el tiempo window.clearInterval(id); } } // Botón de reinicio btnReset.onclick=function(){ seed=0 } //Deja que el cronómetro salte un cuadro function tip(){ seed; .value=seed/100 } //--gt; lt;/scriptgt;

3. Pasar parámetros a la llamada del temporizador

Ya sea window.setTimeout o window. setInterval, use el nombre de la función como Los parámetros no se pueden tomar al llamar al identificador, pero en muchas situaciones, se deben tomar parámetros, lo que requiere encontrar una manera de resolverlo.

Por ejemplo, la función hola(_name) se utiliza para mostrar el mensaje de bienvenida según el nombre de usuario:

var userName="jack" //Muestra el mensaje de bienvenida según el nombre de usuario function hello( _name){ alert("hello , " _name);

En este momento, no es factible utilizar la siguiente declaración para retrasar la ejecución de la función hola durante 3 segundos:

window.setTimeout(hello(userName), 3000);

Esto hará que la función hola se ejecute inmediatamente y el valor de retorno se pasará a la función setTimeout como identificador de llamada. no es lo que el programa necesita. El resultado deseado se puede lograr utilizando el formato de cadena:

window.setTimeout("hello(userName)", 3000);

La cadena aquí es un fragmento de código JavaScript. donde El nombre de usuario representa una variable. Pero esta forma de escribir no es lo suficientemente intuitiva y, en algunos casos, se deben usar nombres de funciones. Aquí hay un pequeño truco para llamar a una función con parámetros:

var userName="jack" //Mostrar bienvenida. mensaje basado en el nombre de usuario function hello(_name){ alert("hello", _name } //Crea una función para devolver una función sin parámetros _hello(_name){ return function(){ hola(_name) window); .setTimeout (_hello(userName), 3000); lt;/scriptgt;

Aquí se define una función _hello, que se usa para recibir un parámetro y devolver una función sin parámetros, que se usa dentro de esta función. Los parámetros de la función externa, de modo que al llamarla no se requieren parámetros. En la función window.setTimeout, use _hello(userName) para devolver un identificador de función sin parámetros, realizando así la función de paso de parámetros.

4. Comprenda correctamente la función de "sincronización" del temporizador

Primero mire un fragmento de código

function display(){ alert(hello); } setTimeout(" display()", 3000); alert("¡Lo primero que ves soy yo!")

¿Qué código debería generarse primero? La respuesta es obvia en el programa. ¿Por qué?

Los principiantes pueden malinterpretar los temporizadores de Javascript y pensar que son subprocesos. De hecho, Javascript se ejecuta en un solo subproceso y los temporizadores solo están programados para ejecutarse en un momento determinado en el futuro, y la ejecución específica. El tiempo no está garantizado porque puede haber otro código que controle el proceso de Javascript en diferentes momentos durante el ciclo de vida de la página. El navegador solo es responsable de ordenar y asignar un determinado código para que se ejecute en un momento determinado.

Hablemos del hilo de Javascript. La siguiente figura muestra la línea de tiempo del proceso de JavaScript.

Además del proceso de ejecución de JavaScript, también hay una cola de código que debe ejecutarse durante el siguiente tiempo de inactividad del proceso. A medida que la página pasa durante su ciclo de vida, el código se agregará. la cola en el orden de ejecución. Por ejemplo: cuando se presiona un botón, su controlador de eventos se agrega a la cola y se ejecuta en el siguiente momento posible.

La forma en que funciona el temporizador en la cola es que cuando ha pasado un tiempo específico, se inserta el código. Tenga en cuenta que agregar a la cola no significa que se ejecutará inmediatamente, sino solo que lo hará. ejecutarse lo antes posible. Configurar un temporizador para que se ejecute después de 250 ms no significa que se ejecutará inmediatamente después de 250 ms. Solo significará que se agregará a la cola después de 250 ms. Con el tiempo, este código se ejecutará.

Mire el siguiente código:

var btn = document.getElementById("mybtn"); btn.onclick = function () { setTimeout(function () { document.getElementById (" mensaje").nodeName = "mymessage"; //Otros códigos}, 250); }

Lo más importante a tener en cuenta sobre el temporizador es: el intervalo de tiempo especificado indica cuándo es el código del temporizador. agregado a la cola, no cuando se ejecuta el código. Consulte la siguiente figura para conocer el cronograma del proceso de este evento onclick: