Ini adalah pertanyaan lama, tetapi karena saya sedang mencari pemuatan halaman penuh tetapi untuk Spookyjs (yang menggunakan casperjs dan phantomjs) dan tidak menemukan solusi saya, saya membuat skrip sendiri untuk itu, dengan pendekatan yang sama seperti yang dianggap pengguna. Apa yang dilakukan pendekatan ini, untuk jangka waktu tertentu, jika halaman tidak menerima atau memulai permintaan apa pun, itu akan mengakhiri eksekusi.
Pada file casper.js (jika Anda menginstalnya secara global, jalurnya akan seperti /usr/local/lib/node_modules/casperjs/modules/casper.js) tambahkan baris berikut:
Di bagian atas file dengan semua vars global:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Kemudian di dalam fungsi "createPage (casper)" tepat setelah "var page = require ('webpage'). Create ();" tambahkan kode berikut:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Kemudian di dalam "page.onResourceReceived = function onResourceReceived (resource) {" pada baris pertama tambahkan:
resetTimeout()
Lakukan hal yang sama untuk "page.onResourceRequested = function onResourceRequested (requestData, request) {"
Terakhir, pada "page.onLoadFinished = function onLoadFinished (status) {" pada baris pertama tambahkan:
if(!reqResFinished)
{
return
}
reqResFinished = false
Dan hanya itu, semoga yang ini membantu seseorang yang dalam kesulitan seperti saya. Solusi ini untuk casperjs tetapi bekerja langsung untuk Spooky.
Semoga berhasil !