2017-03-02 17 views
0

JavaScriptとPhantomJSの方が新しいです。私は、コマンドphantomjs myfile.jsとmyfile.js(熊forループ)を実行すると、それは時折(間違いなくなります)PhantomJSのXMLHttpRequest例外101エラーを処理する方法は?

NETWORK_ERR: XMLHttpRequest Exception 101: A network error occurred in synchronous requests. 

にこのエラーが発生するたびに出ています、私は私でCtrl + Cを使用して(このプロセスを終了する必要がありますターミナル)、その後、私の仕事を継続するために、次のbashコマンドを使用し

$ some bash command to clean the job done before error occurs 
$ phantomjs myfile.js 

本当に私が行うには大きなforループを持っている、特に踏み込んでいます。だから、私はそれが私のラフな思考で

NETWORK_ERR: XMLHttpRequest Exception 101 

を与えたときに、自動的に次の行を実行するためのいくつかの方法があるかどうかを疑問に思って、私はmyfile.js内のコードを処理し、いくつかのエラーを持っている、またはシェルスクリプト内phantomjs myfile.js埋め込むことがファイルを作成し、発生したエラーをキャッチします。

誰も私にこのことを教えることができますか?

// myfile.js 
    var request = new XMLHttpRequest(); 
    var myURLs = ["url1","url2", ... ]; // this array contains more than 10k URLs 
    for (i=0; i<myURLs.length; i++) { 
     request.open('GET', myURLs[i], false); // synchronous request 
     request.setRequestHeader("HEADERKEY","HEADERVALUE"); 
     request.send(); 
     if (request.status === 200) { 
     console.log(request.responseText); 
     } else { 
     console.log("Error Code: " + request.status); 
     phantom.exit(); 
     } 
    } 
    phantom.exit(); 

は、プライベートな理由から、私はmyURLsアレイ内のURLを共有することはできません。

はここに私のメインのPhantomJSコードです。ごめんなさい、申し訳ありませんが、私のコードからいくつかのアイデアが得られれば、依然として助けを求めます。

+0

をしてください(再現するために必要な最小限の)PhantomJSコードとそれを実行するためのコードを共有しています。 – Vaviloff

+0

@Vaviloff私の質問の本文に私の最小限のコードをすでに共有しています。 – Patrick

+0

@Vaviloff私は 'phantomjs --web-security = no myfile.js'でコードを実行します – Patrick

答えて

0

一言、私はここで自分の質問に答える必要があります。

PhantomJSは、onErrorというグローバルエラーハンドラを提供します。ファントムジがエラーを投げるときには非常に便利です。

あなたはここに詳細な情報を見つけることができます、http://phantomjs.org/api/phantom/handler/on-error.html

関連する問題