2012-04-12 12 views
3

次はPhantomJSスクリプトのスニペットです。 AJAXdウェブページ上の動的コンテンツを追跡します。トラックは()を1回呼び出されますが、()何らかの理由page.openのコンソールに次の ファンクションは1回だけ呼び出されますが、複数回起動されます

function track(url){ 
     console.log('Tracking',url); 
     var page = require('webpage').create(); 
     console.log('check2') 
     if(page){ 
      console.log('check4'); 
      page.open(url, function (status) { 
       console.log('check3'); 
       if (status !== 'success') { 
        console.log('Unable to load the address!'); 
        setTimeout(function(){start();},1000); 
        setTimeout(function(){page.release();},5000); 
       } 
       else { 
        console.log('check'); 
        var i = 0; 
        var last_winner = false; 
        var logged_once = false; 
        var interval = false; 
        if(!interval){ 
         interval = setInterval(function(){ 
          var scraping = scrape(page); 
          var date = new Date(); 
          var time = date.getTime(); 
          if(scraping){/*Bunch of console logs*/} 
          else{ 
           console.log('Bidding ended'); 
           clearInterval(interval); 
           setTimeout(function(){start();},1000); 
           setTimeout(function(){page.release();},5000); 
          } 
          scraping = false; 
         },1000); 
        }; 
       }; 
      }); 
     }; 
    }; 

がログに記録し3回

と呼ばれる:

Tracking http://www.google.com 
check2 
check4 
check3 
check 
check3 
check 
check3 
check 

私が把握することはできませんいくつかの理由、page.open()は3回呼び出されています。

+0

私は、ページオブジェクトが本当に何であるか、把握することを試してみた: 'はconsole.log(ページ);' – Corkscreewe

+0

ははconsole.log( 'check3')を変更してみてください。 console.log(ステータス);あなたが得るものを見てください。私はそれがhttpステータスコードを処理している間にopen()を繰り返していくという感じがしますか? –

答えて

関連する問題