1
VBS에서 XMLHTTP가 비동기식으로 끝나기 전에 어떻게 읽을 수 있습니까? 아래의 예제 ("이 작업을 완료하는 데 필요한 데이터가 아직 없습니다."잠자기 시간이 충분하지 않은 경우 오류) 큰 위키 백과 페이지를 사용하지만 궁극적으로 나는 무한 웹 페이지에 이것을 사용하려고합니다. /로드가 끝나지 않은 스트림. 그래서, 이 예제를 부분적으로 HTTP 응답을 일찍 수정하는 간단한 방법은 무엇입니까?비동기 XMLHTTP로 부분 응답 받기
strFileURL = "https://en.wikipedia.org/wiki/Algorithm" ' or any big webpage
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP") ' all of these xmlhttp options have no "streaming success"
' Set objXMLHTTP = CreateObject("Microsoft.XMLHTTP")
' Set objXMLHTTP = CreateObject("Microsoft.XmlHttp")
' Set objXMLHTTP = Createobject("MSXML2.XMLHTTP.3.0")
' Set objXMLHTTP = CreateObject("Msxml2.ServerXMLHTTP.6.0")
objXMLHTTP.open "GET", strFileURL, true
objXMLHTTP.send()
' Is there something other than ResponseText to avoid error and get partial result below (i.e., read html like a stream)?
WScript.Sleep 500 ' need to play with this time to try to cause mystate1=3 below
mystate1 = objXMLHTTP.ReadyState ' should be 3
myscan = objXMLHTTP.ResponseText ' CAUSES ERROR if mystate1 < 4 (comment this line out to avoid error)
WScript.Sleep 1000
mystate2 = objXMLHTTP.ReadyState ' should be 4
myscan = objXMLHTTP.ResponseText
MsgBox(mystate1)
MsgBox(mystate2)
MsgBox(myscan)
Set objXMLHTTP = Nothing
좋아, 내가 사용할 수있는 다른 속성이 있습니까? 이 예제에서 ResponseText를 ResponseStream으로 변경하면 MsgBox가 해당 속성이 있음을 알리기 전까지는 오류가 발생하지 않지만 단순히 해당 속성에 대한 세부 정보를 보는 방법을 모르겠습니다. 이 성장하는 ResponseStream의 크기를 적어도 볼 수 있어야한다고 생각하지만 그렇게 할 수는 없습니다. 내가 어떻게 그것을 할 수 있는지 또는 실시간 "로드 진행률"을 볼 수있는 다른 VBS 방법을 알고 있다면 도움이 될 것입니다. 사실 실시간 콘텐츠보다 실시간로드 크기가 더 중요합니다. – bobuhito
VBScript에서이 작업을 수행 할 수있는 방법을 알고 있다면 제안했을 것입니다. –