Questa è una vecchia domanda, ma dato che stavo cercando il caricamento della pagina intera ma per Spookyjs (che utilizza casperjs e phantomjs) e non ho trovato la mia soluzione, ho creato il mio script per quello, con lo stesso approccio dell'utente deemstone. Ciò che fa questo approccio è, per un dato periodo di tempo, se la pagina non ha ricevuto o avviato alcuna richiesta, termina l'esecuzione.
Nel file casper.js (se lo hai installato a livello globale, il percorso sarebbe simile a /usr/local/lib/node_modules/casperjs/modules/casper.js) aggiungi le seguenti righe:
Nella parte superiore del file con tutti i var globali:
var waitResponseInterval = 500
var reqResInterval = null
var reqResFinished = false
var resetTimeout = function() {}
Quindi all'interno della funzione "createPage (casper)" subito dopo "var page = request ('pagina web'). Create ();" aggiungi il seguente codice:
resetTimeout = function() {
if(reqResInterval)
clearTimeout(reqResInterval)
reqResInterval = setTimeout(function(){
reqResFinished = true
page.onLoadFinished("success")
},waitResponseInterval)
}
resetTimeout()
Quindi all'interno di "page.onResourceReceived = function onResourceReceived (risorsa) {" nella prima riga aggiungere:
resetTimeout()
Fare lo stesso per "page.onResourceRequested = function onResourceRequested (requestData, request) {"
Infine, su "page.onLoadFinished = function onLoadFinished (status) {" nella prima riga aggiungi:
if(!reqResFinished)
{
return
}
reqResFinished = false
Ed è tutto, spero che questo aiuti qualcuno nei guai come me. Questa soluzione è per casperjs ma funziona direttamente per Spooky.
In bocca al lupo !