RequestStart 事件

[自 Windows 7 起弃用 Microsoft Agent,在后续版本的 Windows 中可能不可用。]

描述

服务器开始执行排队请求时出现。

语法

Sub agent**_RequestStart** (ByVal Request**)**

组成部分 说明
Request 返回 Request 对象。

 

注解

该事件将返回 Request 对象。 由于请求会异步处理,因此可使用此事件来确定服务器何时开始处理请求(例如 GetPlaySpeak 方法),从而将此事件与应用程序生成的其他操作进行同步。 该事件仅会发送到创建对 Request 对象的引用的客户端,且仅当已为此请求引用定义全局变量时才会发送:

   Dim MyRequest 
   Dim Genie 

   Sub window_Onload
   
   Agent1.Characters.Load "Genie", _
      "https://agent.microsoft.com/characters/v2/genie/genie.acf"   

   Set Genie = Agent1.Characters("Genie")

   ' This syntax will generate RequestStart and RequestComplete events.
   Set MyRequest = Genie.Get("state", "Showing")

   ' This syntax will not generate RequestStart and RequestComplete events.
   Genie.Get ("state", "Hiding")

   End Sub

   Sub Agent1_RequestStart(ByVal Request)

   If Request = MyRequest Then
      Status = "Loading the Showing animation"

   End Sub

Status 将为返回的 Request 对象返回 4(正在处理请求)。

由于动画 Request 对象在服务器处理请求之前不会被分配,因此在尝试对该对象求值之前,请确保 Request 对象存在。 例如,在 Visual Basic 中,如果使用条件语句来测试特定请求是否已完成,则可使用 Nothing 关键字:

   Sub Agent1_RequestStart (ByVal Request)

   If Not (MyRequest Is Nothing) Then
      If Request = MyRequest Then
      '-- Do whatever
      End If
   End If

   End Sub

注意

在 VBScript 1.0 中,即使未定义对 Request 对象的引用,此事件也会触发。 此问题已在 VBScript 2.0 中修复。

 

另请参阅

RequestComplete 事件