Maison  >  Article  >  interface Web  >  Comment implémenter la fonction pause en javascript

Comment implémenter la fonction pause en javascript

PHPz
PHPzoriginal
2016-05-16 15:33:302937parcourir

Cet article présente principalement comment implémenter la fonction pause en javascript. Javascript lui-même n'a pas de fonction pause. En même temps, vbscript ne peut pas utiliser doEvents, cette fonction est donc écrite pour implémenter cette fonction. référez-vous à lui. Les détails sont les suivants :

Javascript lui-même n'a pas de fonction pause (le sommeil ne peut pas être utilisé) et vbscript ne peut pas utiliser doEvents, cette fonction est donc écrite pour implémenter cette fonction.

Javascript est un langage objet faible, et une fonction peut également être utilisée comme objet.

Par exemple :

  function Test(){ 
   alert("hellow"); 
   this.NextStep=function(){ 
   alert("NextStep"); 
   } 
  }

On peut appeler comme ça var myTest=new Test();myTest.NextStep();

Lorsque nous faisons une pause, nous pouvons diviser une fonction en deux parties. Le code avant l'opération de pause reste inchangé, et le code à exécuter après la pause est placé dans this.NextStep.

Afin de contrôler la pause et la suite, nous devons écrire deux fonctions pour implémenter respectivement les fonctions pause et continuer.

La fonction pause est la suivante :

<script language="javascript"> 
  function sleep(obj,iMinSecond){ 
   if (window.eventList==null) window.eventList=new Array(); 
   var ind=-1; 
   for (var i=0;i<window.eventList.length;i++){ 
    if (window.eventList[i]==null) { 
     window.eventList[i]=obj; 
     ind=i; 
     break; 
    } 
   } 
   
   if (ind==-1){ 
    ind=window.eventList.length; 
    window.eventList[ind]=obj; 
   } 
 
   setTimeout("goon(" + ind + ")",iMinSecond); 
  } 
  /* 
  该函数把要暂停的函数放到数组window.eventList里,同时通过setTimeout来调用继续函数。 
  继续函数如下: 
  */ 
 
  function goon(ind){ 
   var obj=window.eventList[ind]; 
   window.eventList[ind]=null; 
   if (obj.NextStep) obj.NextStep(); 
   else obj(); 
  } 
  /* 
  该函数调用被暂停的函数的NextStep方法,如果没有这个方法则重新调用该函数。 
   
  函数编写完毕,我们可以作如下: 
  */ 
  function Test(){ 
   alert("hellow"); 
   sleep(this,3000);//调用暂停函数 
   this.NextStep=function(){ 
   alert("NextStep"); 
   } 
  } 
Test(); 
  </script>

Ce qui précède représente l'intégralité du contenu de ce chapitre. Pour plus de didacticiels connexes, veuillez visiter le Tutoriel vidéo JavaScript !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn