本帖最后由 caspar 于 2012-11-26 00:16 编辑
回复 11# BAT-VBS
是的 但就一个代码片段来说 在XMLHTTP .send之后 直到ReadyState=4之前 vbs会在停在send那个语句上 除非之前针对onReadyStateChange时间发生时设置过有函数调用事件
例如- Set xmlHttp = Wscript.CreateObject("Msxml2.ServerXMLHTTP")
- xmlHttp.OnReadyStateChange = GetRef ( "HTTPStateChange" )
- xmlHttp.open "GET", URL, False
- xmlHttp.setRequestHeader "Referer", "http://xxx.xxx.xxx.xxx"
- xmlHttp.setRequestHeader "Accept", "*/*"
- xmlHttp.setRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 2.0.50727)"
- xmlHttp.setRequestHeader "Range", "bytes=" & 0 & "-" & xxxxx
- xmlHttp.setRequestHeader "Content-Type", "application/octet-stream"
- xmlHttp.setRequestHeader "Pragma", "no-cache"
- xmlHttp.setRequestHeader "Cache-Control", "no-cache"
- xmlHttp.send
-
- WScript.Echo xmlHttp.ResponseBody
-
- SUB HTTPStateChange
-
- SELECT CASE xmlHTTP.readystate
- CASE 0
- WScript.Echo "对象已经建立!"
- CASE 1
- WScript.Echo "准备send..."
- CASE 2
- WScript.Echo "数据发送中..."
- CASE 3
- WScript.Echo "数据传送中..."
- CASE 4
- WSCript.Echo "请求完毕!"
- END SELECT
-
- END SUB
复制代码 那么 显示出来的 是- 对象已经建立!
- 准备send...
- 数据发送中...
- 数据传送中...
- (这里就开始等待buf 然后才显示ResponseBody的内容)
复制代码 这时候 就可以针对xmlHTTP.ReadyState来调用不同的函数 |