Javascript 如何在浏览器中渲染动态图像
我正在尝试在浏览器中呈现动态创建的图像。该图像在运行时多次更新,因此我正在尝试刷新它。但无论何时,在启动的浏览器中进行刷新调用,都会使用缓存的源,而不会向服务器发送查询。我在rails 4.2和ruby 2.2上工作 这是我的更新电话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({
$().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”。