目前,要制作一个进度条,当点击运行按钮时,会调用后台的算法,但算法执行时间可能较长,所以用进度条来显示当前算法执行的进度。
    在后台的程序中,我能够得到算法总共需要几步,也可以得到当前执行到哪一步,进而就可以知道当前的进度为%多少了。然后把这个百分比传给前台去动态的显示,前台每隔2秒就调用一次后台的程序来更新进度信息。
    现在后台获取进度信息的程序已经写好了,但如何写jsp文件和js文件不太清楚,没学过这方面的东西,请问有人做过这方面的程序吗?我想参考学习一下,谢谢啦

解决方案 »

  1.   

    JS写个定时函数 里面ajax调用后台你的进度%然后JSP页面显示 最简单的 一个长方形 进度50%就让一半显示绿色吗
      

  2.   

    定时用ajax取到后台的进度,然后设置你进度条图片的img的width="你们美工定义的长度X后台进度百分比"
      

  3.   

    不清楚你这个后台程序跟jvm是不是一个进程
    同一进程:
    很简单,弄一个静态全局可访问的CurrentHashMap,以任务ID为key,进度值为value,任务开始的时候就生成一个任务ID put到这个map,任务结束就移除ID。
    剩下的就是弄一个servlet入口,接受一个任务ID参数,查询map返回进度。前台js定时请求该入口即可。
    如果想做高级实时一些,定时js就不合要求了,那么可以考虑用long pooling, comet,在服务端阻塞一定时间后返回,如此实时性高少许。
    再进一步,可以走完全socket化的websocket。
    当然,还有权限安全问题,自行考虑。不同进程略显麻烦,主要是通信问题,可以考虑用socket、IPC,也可以用共享内存,最次的就是用数据库了。
    解决这个状态获取、通知问题后,剩下的就跟同进程解决方案一致。