2016-10-27 2 views
0

Je suis tout d'abord un débutant complet en ce qui concerne les scripts VB. Je n'ai qu'un seul fichier asp écrit en VB qui démarre un fichier batch. La chose est que je veux quelque chose qui indique que la page se charge comme un gif. Le lot prend presque 10 minutes à courir et ce que je reçois est une page vierge jusqu'à ce qu'elle soit finie.Affichage du chargement du gif avant l'apparition de la page

Ceci est mon code entier

<%@ Language = VBScript %> 
<HTML> 
    <script runat="server" language=VBScript> 
     ' The batch file is running here 
     Dim myExecutor 
     Dim commandline 

     commandline = "cmd.exe /c C:\test.bat " 
     Set myExecutor = Server.CreateObject("WScript.Shell") 
     myExecutor.Run commandline,0,true 
     Set myExecutor = Nothing 
     Response.Write "The batch run is finnished <p> " 
    </script> 
    <body> 
     The batch is loading. <!--renders after batch is finnished :/ --> 
    </body> 
</HTML> 

J'ai essayé d'exécuter un événement onclick <asp:Button Text="Click here" OnClick="run_batch" runat="server"/> mais me donne une erreur 500 page quand on utilise les sender As Object, e As EventArgs comme paramètres probablement parce que je n'avez pas les classes et Runns que tout un fichier asp.

Merci.

Répondre

1

Le problème est que votre code s'exécutera dès que la page se charge. Définissez ce que vous voulez faire en tant que Sub et appelez cela dans le gestionnaire d'événements onload. L'événement se déclenchera une fois que tout le contenu de la page sera chargé.

J'ai testé ce qui suit dans un hta et cela fonctionne. Je ne sais pas à quel point il convertit en asp.

<HTML> 
    <script language=VBScript> 
     sub DoStuff() 
      document.Write "<p>Doing stuff </p>" 
      CreateObject("WScript.Shell").Run "ping localhost",0,true 
      document.Write "<p>The batch run is finished <p> " 
     end sub 
    </script> 

    <body onload="DoStuff()"> 
    </body> 
</HTML> 

Sinon, pour une approche de bouton juste utiliser

<button onclick="DoStuff()"> Do Stuff </button> 
+0

Votre code fonctionne, mais puis-je exécuter un fichier .hta sans demander de télécharger ou d'exécuter? Chrome vient de télécharger le fichier .hta. Je veux l'exécuter dans le navigateur. – roYal

+0

Je n'ai pas de configuration de serveur web sur ma machine, d'où la raison pour laquelle j'ai créé le .hta. Vous devriez juste prendre l'approche de ce code et l'appliquer à votre script original. – FloatingKiwi

+0

Je l'exécute à partir de Visual Studio avec un IIS local. Il semble que je ne peux exécuter que l'explorateur .hta et d'autres navigateurs ne téléchargent que le fichier. .hta semble être une sorte de solution Internet Explorer. – roYal