2017-11-20 6 views
0

私はフラスコのアプリケーションにシグナルを送信して、ajaxを使っていくつかの図を再計算する小さなjavascript関数を持っています。数字が正しく生成されたら、新しい数字でページをリロードします。図がキャッシュされているので、Figureファイル名にバージョン番号を追加しています( '?'を使用しています)。 私のコードは、しかし、このIOError:[Errno 32] JavaScriptを使用してページをリロードするときに壊れたパイプ

$.ajax({ 
    url: $SCRIPT_ROOT + "/process_figures", 
    type: "POST", 
    async: true, 
    cache: false, 
    dataType: 'json', 
    contentType: "application/json; charset=utf-8", 
    data: JSON.stringify({}, null, '\t'), 
    success: function(data){ 
     if(data.error){ 
      console.log('Error = ', data.error) 
     } 
     else{ 
      var images = document.getElementsByClassName('metric_img'); 
      for(i = 0; i < images.length; i++){ 
       images[i].src = images[i].src.split("?")[0] + '?version=' + new Date().valueOf(); 
      } 
      window.location.reload(); 
     } 
    } 
}); 

のように見え、このコードは常に

になり
127.0.0.1 - - [20/Nov/2017 14:59:39] "GET metrics_indices_1.png?version=1511189978191 HTTP/1.1" 200 - 
Error on request: 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 205, 
in run_wsgi 
    execute(self.server.app) 
    File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 196, 
in execute 
    write(data) 
    File "/usr/local/lib/python2.7/site-packages/werkzeug/serving.py", line 164, 
in write 
    self.send_header(key, value) 
    File "/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.py", line 412, in send_header 
self.wfile.write("%s: %s\r\n" % (keyword, value)) 
IOError: [Errno 32] Broken pipe 

誰が間違ってここに何が起こっているか知っていますか?また、私は本当にページをリロードする必要はありません。誰かが画像のみを再ロードするためにJavaScriptを使用する方法を知っていれば、それは同様に素晴らしいことだ

答えて

0

[OK]を

var images = document.getElementsByClassName('metric_img'); 
for(i = 0; i < images.length; i++){ 
    var image_src = images[i].getAttribute('src'); 
    if(image_src){ 
     image_src = image_src.split('?')[0] + '?version=' + new Date().valueOf(); 
     images[i].setAttribute('src', image_src); 
    } 
} 

作品罰金...わからない理由が、そのはるかに良い、にjavascriptのコードを変更ページリロードを必要としないためです。

関連する問題