如果应用程序运行在您具有管理员访问权限的机器上,以便您可以注册 COM DLL,那么当我想在经典 ASP 代码中进行测试时(有时插入人为延迟很有用)我使用简单的免费不幸的是,原始来源不再提供 DLL(请参阅此处进行一些讨论)。如果你想试一试,我在这里放了一份。要调用,请使用类似Dim WaitObj: Set WaitObj = Server.CreateObject ("WaitFor.Comp"): WaitObj.WaitForSeconds 10
毫无疑问,这个库只是睡眠 API 调用的一个包装器,所以如果你不想信任来自一些未经审查的 3d 方的随机库(信任来自未经审查来源的匿名代码不是什么东西),你可以自己制作我不会推荐,我算作未经审查的来源)。对于 VB6,调用将被声明为Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long).
不过,在尝试上述任何一项之前,我现在要做的第一件事是在 StackOverflow 中询问其他人在经典 ASP 中用于非忙等待的内容。您可能会发现还有另一个库仍然受到其创建者的支持,或者完全是一种更好的技术。由于ping诀窍是使用CreaetObject,我怀疑在经典 ASP 上下文中可用的任何内容都可以在您的应用程序中使用。
哦,现在这是一个hacky技巧。但是,如果应用程序正在运行的用户没有被锁定以使其无法使用 wshell.run,它会起作用。我想我真的很喜欢它...
如果应用程序运行在您具有管理员访问权限的机器上,以便您可以注册 COM DLL,那么当我想在经典 ASP 代码中进行测试时(有时插入人为延迟很有用)我使用简单的免费不幸的是,原始来源不再提供 DLL(请参阅此处进行一些讨论)。如果你想试一试,我在这里放了一份。要调用,请使用类似
Dim WaitObj: Set WaitObj = Server.CreateObject ("WaitFor.Comp"): WaitObj.WaitForSeconds 10
毫无疑问,这个库只是睡眠 API 调用的一个包装器,所以如果你不想信任来自一些未经审查的 3d 方的随机库(信任来自未经审查来源的匿名代码不是什么东西),你可以自己制作我不会推荐,我算作未经审查的来源)。对于 VB6,调用将被声明为
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
.不过,在尝试上述任何一项之前,我现在要做的第一件事是在 StackOverflow 中询问其他人在经典 ASP 中用于非忙等待的内容。您可能会发现还有另一个库仍然受到其创建者的支持,或者完全是一种更好的技术。由于
ping
诀窍是使用CreaetObject
,我怀疑在经典 ASP 上下文中可用的任何内容都可以在您的应用程序中使用。啊! 我已经好几年没用过任何“WhatsUp”软件了,所以我已经不熟悉了。快速浏览他们的论坛并与我的朋友 Google 一起搜索证实了您提到的丑陋黑客。
我有时会像在批处理文件中那样滥用 PING 来延迟。这很聪明,但很丑陋。
丑陋的替代方法是编写根本不需要任何“睡眠”功能的代码。您如何监控 MySQL?您是否使用 ODBC 连接到它并运行查询来判断它的“活跃度”?
ping -n X 127.0.0.1 技巧是一种 hack,但不是特别脏。自上个世纪以来,它已广为人知并用于各种 Windows 批处理脚本;)
你试过SleepCMD
为什么不直接使用setTimeout方法?查看以下“嘿,脚本专家”列:
http://blogs.technet.com/heyscriptingguy/archive/2006/03/30/how-can-i-temporarily-pause-a-script-in-an-hta.aspx
http://blogs.technet.com/heyscriptingguy/archive/2006/08/18/how-can-i-minimize-or-hide-an-html-application-for-30-seconds.aspx