Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在浏览器中渲染动态图像_Javascript_Image_Dynamic - Fatal编程技术网

Javascript 如何在浏览器中渲染动态图像

Javascript 如何在浏览器中渲染动态图像,javascript,image,dynamic,Javascript,Image,Dynamic,我正在尝试在浏览器中呈现动态创建的图像。该图像在运行时多次更新,因此我正在尝试刷新它。但无论何时,在启动的浏览器中进行刷新调用,都会使用缓存的源,而不会向服务器发送查询。我在rails 4.2和ruby 2.2上工作 这是我的更新电话 $().ready(function(){ $("#ajax_sub").onclick=function(){ var par=$("#ajax_par").value $.ajax({

我正在尝试在浏览器中呈现动态创建的图像。该图像在运行时多次更新,因此我正在尝试刷新它。但无论何时,在启动的浏览器中进行刷新调用,都会使用缓存的源,而不会向服务器发送查询。我在rails 4.2和ruby 2.2上工作

这是我的更新电话

$().ready(function(){ 
$("#ajax_sub").onclick=function(){
           var par=$("#ajax_par").value
               $.ajax({
                type: "get",
                url: 'pages/plot',
                data: {'symbol' : par}
            }).success(function(){
                if($("#img_plot")){
                    remove_plot()
                }
                refresh_plot()
          })
        }
    })
refresh_plot=function(){
    console.log("loading image")
    img_obj=document.createElement("img")
    img_obj.id="img_plot"
    img_obj.src="/pages/stream"
    $("#plot").appendChild(img_obj)
}
这是控制台输出

2015年3月10日开始获取127.0.0.1的“/pages/plot?symbol=cos” 11:35:44-0400页控制器处理#绘图方式/参数: {“symbol”=>“cos”}在31毫秒内完成200 OK(视图:0.2毫秒| 活动记录:0.0ms)

2015-03-10 11:35:44-0400开始获取127.0.0.1的“页面/流” PagesController#stream作为HTML发送文件public/plot.png(0.3ms)处理在1ms内完成200 OK(ActiveRecord:0.0ms) [2015-03-10 11:35:44]警告无法确定的内容长度 响应机构。设置响应或集合的内容长度 响应#分块=真

2015年3月10日开始获取127.0.0.1的“/pages/plot?symbol=sin” 11:35:51-0400页控制器处理#绘图方式/参数: {“symbol”=>“sin”}在27毫秒内完成200 OK(视图:0.2毫秒| 活动记录:0.0ms)

Ajax调用更新控制器中的图像(pages#plot)并调用“/pages/stream”从pages#stream发起发送文件请求。 在第一次单击时,会启动两个Get调用,然后只启动一个


如何修改此行为,使图像得到刷新?

使用浏览器开发人员控制台检查发生了什么。我假设没有对图像发出请求,因为它的源已经被缓存。您可以通过将所有缓存头设置为“无缓存”或在图像url中附加一些独特的内容(如
?somerandomstring
)来避免此问题,这样您的浏览器每次都会使缓存无效。

谢谢phoet,它工作起来很有魅力。我在图像url中添加了“?currenttime”。