Maison > Article > interface Web > Comment empêcher le rappel « onLoadFinished » de PhantomJS de se déclencher prématurément lors du chargement asynchrone d'une page ?
Les utilisateurs de PhantomJS rencontrant un déclenchement prématuré du rappel onLoadFinished, empêchant la capture de pages Web entièrement chargées, peuvent envisager la solution suivante.
Ce problème survient lorsque du contenu mineur est chargé de manière asynchrone, empêchant PhantomJS de détecter la fin de la page. Pour résoudre ce problème, envisagez de mettre en œuvre un mécanisme de délai :
page.open(address, function (status) { if (status !== 'success') { console.log('Unable to load the address!'); phantom.exit(); } else { window.setTimeout(function () { page.render(output); phantom.exit(); }, 1000); // Change timeout as required to allow sufficient time } });
En introduisant un délai d'attente entre le chargement de la page et le rendu, PhantomJS dispose de suffisamment de temps pour attendre le chargement de ressources supplémentaires. Ajustez la valeur du délai d'attente pour garantir suffisamment de temps pour le chargement complet de la page avant de capturer la capture d'écran. Cela permet une représentation précise des éléments dynamiques, y compris les publicités.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!