2017-10-25 17 views
1

タイムアウト値を設定して、サーバーがその特定の時間枠で応答しない場合、UIが先に進み、応答を待たないようにします。これまでのところ、以下の構文を使用していますが、指定した時刻にリッスンするようにUIを制限するものではありません。d3 xhr送信要求でタイムアウトを指定する方法

 d3.xhr(my_url) 
     .header('Content-Type', 'text/xml') 
     .header('timeout', 2000) 
     .send(this.my_method, my_xmlData, function(error, data) { 
     } 

私はを読んで、d3 xhrはタイムアウト機能をサポートしています。誰もそれを正しく使う方法を教えてもらえますか?

+0

'timeout'はリクエストインスタンスを返します。また、あなたの投稿を編集して**別の**問題を作るのはうれしいことではありません。ご覧のとおり、私はあなたの質問に答えました。しかし、今、あなたが別のものに変更して以来、私の答えを見ている人々はそれが間違っていることを見つけるでしょう... –

+0

@GerardoFurtado Ok Mateは新しいものを調達します。ありがとう。 –

+0

ご覧のように、 'timeout'を使うと、あなたが尋ねたように*"先に進む "*というリクエストを行います。しかし、この場合は、コールバックに' null'を渡すことを意味します。 –

答えて

2

ジャスト(バージョン4.xに)timeoutに時間(ミリ秒単位)を渡します。ここでは

.timeout(time) 

は一例です。

var url = "https://mysafeinfo.com/api/data?list=englishmonarchs&format=json"; 
 

 
d3.json(url) 
 
    .timeout(1) 
 
    .get(callback); 
 

 
function callback(data) { 
 
    console.log(data) 
 
}
<script src="https://d3js.org/d3.v4.min.js"></script>
:タイムアウトで1ミリ秒(ほんの少しの時間)を使用して、今、同じコードを

var url = "https://mysafeinfo.com/api/data?list=englishmonarchs&format=json"; 
 

 
d3.json(url) 
 
    .get(callback); 
 

 
function callback(data) { 
 
    console.log(data) 
 
}
<script src="https://d3js.org/d3.v4.min.js"></script>

:私はtimeoutなしのJSONファイルをロードします

ご覧のとおり、1ミリ秒でファイルを取得するには余裕がありませんe、そしてコールバックはnullを期待どおりに返します。

+0

wow!出来た。しかし、タイムアウトの場合に実行する関数をどのように指定するのですか? –

+0

答えを受け入れました。しかし、UIが値を待っている間にコールバックがタイムアウトしたときにコールバックを実行したい。 https://stackoverflow.com/q/46924863/5346095 –

+0

Mmm、あなたは**異なる**質問があると思います!時間制限の後に所定の関数を実行したいが、**依然として**要求を待っている**、それは正しい? –

関連する問題