目前在写一个监控系统,可以通过选择日期显示对比图,使用的morris.bar柱形图目前遇到个问题,每次选择日期后会刷新界面,我需要使用异步,对图像进行重绘,但是没找到morris的重绘方法(ps:我是大四的实习生,后台开发的,对前端只是实在有限)想法是把存放柱形图的div   empty一下,在重新绘制柱形图就可以了,但是发现重绘图像与原图像相同(数据在controller中保存在modelMap中,发现异步发送的请求不会覆盖我以前存放的数据),导致柱形图无法正确的重绘。大腿们,谁了解下morris.bar的重绘,如何实现有效的重绘,$result,并不能得到实时的返回数据。
        var date = $("#datetimepicker3").val();
        var url = window.document.location.href;
var contextPath = url.split("?")[0];
$.ajax({
        url : contextPath + "?datepicker=" + date,
success : function() {
       
var comparison_data = $result;
$('#graph-bar').empty();
Morris.Bar({
element : 'graph-bar',
data : comparison_data,
xkey : 'week',
ykeys : [ 'lastWeek', 'theWeek' ],
labels : [ '上周', '本周' ],
barColors : [ '#414e62', '#6dc5a3' ]
});
}
});

解决方案 »

  1.   

    目前找到了解决的办法就是写两个controller接口,一个用于返回view的String,一个用@ResponseBody修饰,返回对应数据的json可以实现异步重绘,因为是新项目,很好改,但是,有两个相同代码的方法真不舒服。请问,能不能或者如何实现这个功能:
                        controller中返回的String会先解析为view,当该view不存在时,以json返回。
      

  2.   

    https://blog.csdn.net/songzehao/article/details/89856932
    这种方法可以试试。