3

私はvbscriptが初めてで、読んでいるときにいくつかのコードを見つけました

Do While ie.busy
stateString = stateString & " " & cstr(ie.readystate)
loop
do while ie.readystate <> 4
stateString = stateString & " " & ie.readystate
loop

propertyビジーとreadystateプロパティの違いを教えてください。

4

1 に答える 1

4

ここから:

マイケル・ハリス (MVP) は次のように書いています。

        [...]
        do until ie.readyState = 4 : wscript.sleep 10 : loop
        [...]


    Is there a reason to use
      do until ie.readyState = 4 : wscript.sleep 10 : loop
    instead of
      While ie.Busy : WScript.Sleep 10: Wend
    [...]

さまざまな IE 自動化シナリオでの過去の経験に基づいて、IE.Busy はドキュメントの完全に読み込まれた状態を判断する上で 100% 信頼できるわけではないことがわかりました。.ReadyState が最終的に 4 (完了) に到達する前に、状況によっては .Busy が true/false/true/... を振動するように見えました。

その振動動作、現在のバージョンで修正されたバグであった可能性がありますが、Busy の説明は以前よりも改善されている可能性が高いようです (少なくとも、何年も前に読んだことを思い出す限り)。IE がナビゲーションまたはダウンロードでビジー状態であることを単純に述べており、DOM が構築され、ページがブラウザ UI で実際にレンダリングされるときにドキュメント自体が通過するさまざまな状態との関連については何も明示的に述べていません。

.Busy ではなく .ReadyState を使用することで回避される問題は、不完全な DOM でアクセス/操作しようとするスクリプトでスローされるエラーです。

于 2012-04-09T09:16:39.767 に答える