У меня есть сценарий (ниже), который сбрасывает сайт с трехэтапным процессом. он отлично работает при установке максимум на 1 страницу за раз. однако, когда я увеличиваю это до 2 за один раз, все начинает становиться неуклюжим. onFinished пожары раньше, чем я ожидал бы, и страница еще не полностью загружена. из-за этого остальная часть моего скрипта ломается. любая идея, почему это может произойти? Я должен добавить, что я использую самую новую версию (1.5).Неожиданное поведение при загрузке PhantomJS с несколькими страницами
MAX_PAGES = 1
###
changing MAX_PAGES to >1 causes some pages onFinished event to fire before
the page is fully rendered. this is evident by the fact that there are >1 images
for some pages. i havent been able to reproduce using microsoft.com, but on some
pages i was working on the first onLoadFinished seemed to be called before the page
was actually fully loaded based on the look of the rendered images
###
newPage = (id) ->
context = {}
context.id = id
context.step = 0
context.page = require('webpage').create()
context.page.onLoadStarted = ->
context.step++
context.page.onLoadFinished = (status) ->
console.log status
if status is 'success'
context.page.render("#{context.id}_#{context.step}.png")
else
context.page.release()
context.page.open('http://www.microsoft.com')
console.log 'started loading'
newPage id for id in [1..MAX_PAGES]
Если не рекурсивный вызов, как в этом примере, по крайней мере, обратный вызов, который вызовет следующий обход. –
Ваша ссылка сломана :( – Julien