在页面出现之前显示加载gif

时间:2016-10-27 11:19:19

标签: vbscript page-lifecycle

首先,对于VBscripts,我是一个完全的初学者。 我只有一个用VB编写的asp文件启动批处理文件。 问题是,我想要一些东西,表明页面加载像一个gif。批处理需要大约10分钟才能运行,我得到的是一个空白页,直到它完成。

这是我的整个代码

<%@ 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>

我尝试运行一个onclick事件<asp:Button Text="Click here" OnClick="run_batch" runat="server"/>,但是当我使用sender As Object, e As EventArgs作为参数时,给出了500页错误,可能是因为我没有这些类,只在一个asp文件中运行所有内容。 / p>

感谢。

1 个答案:

答案 0 :(得分:1)

问题是您的代码会在页面加载后立即执行。以Sub定义您要执行的操作,并在onload事件处理程序中调用它。一旦页面上的所有内容都加载,该事件就会触发。

我在hta中测试了以下内容并且它有效。不确定它转换为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>

或者对于按钮方法,只需使用

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