tôi có một tập lệnh (bên dưới) để xóa một trang web với quy trình 3 bước. nó hoạt động tốt khi được đặt tối đa 1 trang tại một thời điểm. tuy nhiên, khi tôi tăng lên 2 lần vào thời điểm mọi thứ bắt đầu trở nên ảm đạm. đám cháy onFinished sớm hơn tôi mong đợi và trang chưa được tải hoàn toàn. vì điều này phần còn lại của kịch bản của tôi bị phá vỡ. bất kỳ ý tưởng tại sao điều này có thể xảy ra? tôi nên thêm rằng tôi đang sử dụng phiên bản mới nhất (1.5).Hành vi tải không mong muốn PhantomJS với nhiều trang
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]
Nếu không phải là một cuộc gọi đệ quy như trong ví dụ này, ít nhất một cuộc gọi lại sẽ kích hoạt thu thập thông tin tiếp theo. –
Liên kết của bạn bị hỏng :( – Julien