IOError:[Errno 32]使用javascript重新加载页面时管道损坏

时间:2017-11-20 15:12:25

标签: javascript

我有一个小的javascript函数,它向我的烧瓶应用程序发送信号,使用ajax重新计算一些数字。如果数字生成正确,我想用新数字重新加载页面。由于数据是缓存的,我在图形文件名中添加了一个版本号(使用“?”),这应该强制重新加载。 我的代码看起来像这样

$.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重新加载图像,那也很好

1 个答案:

答案 0 :(得分:0)

好的将javascript代码更改为

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);
    }
}

工作正常...不确定原因,但它更好,因为它不需要页面重新加载。