Задача. Есть немаленький портал с львиной долей бизнес логики и громадными запросами к базе данных. На странице порядка 3000-4000 всяких Item'ов.
После написания такого кода:
myValue = myPage.Item("myItem").firstChild.nodeValueРезультат получался "через раз".
По совету уважаемого Dmitry_N было переписано тоже самое, но с WaitItem и таймаутом в 10сек.
Не помогло.
Тогда, закралось подозрение, что ТС просто не успевает обновить все Item'ы (3-4 тысячи - немаленькое количество). Код получился примерно следующий:
timeOut = 10000 ' 10sec endTime = Win32API.GetTickCount + timeOut '------------------------------------------------------------------------------------------ Do While endTime + timeOut > Win32API.GetTickCount myPage.Refresh myValue = myPage.WaitItem("myItem", timeOut).firstChild.nodeValue if (myValue <> Empty) then Exit Do LoopАналогичный код на 2000 Item'ов работал всегда. Увеличил таймаут до 20сек- все выполняется. Но в целом скрипт, который сравнивает значения в 2х полях выполняется 2 минуты. Возможно как-то более правильно и быстрее выполнять эти же действия?