一个类似股票看板的自刷新页面的制作

前一阵,有个基于JavaSwing的项目,由于使用不便利,需要移植到Web上。

这个项目的基本功能是这样的,启动一批线程,每个线程访问指定地址一定次数,将每次是否成功,耗时等信息显示出来,最后做个统计。这个任务最终分给了我。

我分析下,以下功能是可以直接拿来用的:

1.访问固定网址的Servlet,获得反馈,解析出成果的代码。

2.运行线程的代码。

3.进行结果统计的代码。

而以下功能是需要重新考虑的:

1.以前SwingApp是单用户环境,现在Web是多用户环境。

2.如果后台线程运行起来,前台该怎么取得后台的结果。

我是这样去考虑的:

用n个线程访问某网址m次是任务核心。

一个任务由一个用户启动,它对应task表的一条记录,主要字段有id,启动者,线程个数,访问次数等。

n个线程从属于一个任务,它对应thread表的一条记录,主要字段有id,pid(task表的id的外键),需要访问次数,已经访问次数,成功次数,失败次数,平均每次访问时间等。

用户在前台启动任务后,后台负责处理的函数先启动任务即创建task表的记录,然后根据线程个数创建n条thread表的记录,然后创建n个线程访问固定网址取得结果,每次访问结果更新到thread表里的对应记录里,这里创建线程的步骤也是新启线程实现的,为的是异步运行不影响前台页面响应速度。

前台页面进入新页面,新页面根据传来的值--一批线程id即thread表的id创建一个表格,表格里的行对应一条thread表的记录。

遍历表格,拿到每行id再启动Ajax访问后台Thread表记录取得结果,分析需要访问次数和已经访问次数是否相等,否则调用自身再次访问,是则退出函数。

为了提示用户进度,前台用一个定时函数取得表格里的需要访问次数和已经访问次数,统计后用进度条的方式提示用户。

再思基本没有问题后,就做了下来,页面截图如下:

时间: 2024-10-07 23:51:16

一个类似股票看板的自刷新页面的制作的相关文章

vue:解决使用param传参后,再次刷新页面会新增一个原有的tab

问题:在最近的项目中,我通过传递不同的参数,复用同一组件进行渲染,然而意外出现一个bug,就是当我重新刷新该页面时,会新增一个tab 原来的: 刷新页面后: 查阅资料后,发现该现象是由于通过params进行传递的参数引起的,params进行传参后再次刷新页面,参数丢失,导致fullpath不一致,从而新增了页面(而我使用的d2admin基于element-ui第三方框架) 解决方案:将params方式传参改为使用query传参,这样参数就不会因为刷新而丢失 参考: https://juejin.

网页刷新页面方法小结

1.页面自动刷新:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20"> 其中20指每隔20秒刷新一次页面. 2.页面自动跳转:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20;url=https://www.baidu.com/"> 其中20指隔20秒后跳转

js刷新页面方法大全

本文介绍下,用js刷新当前页面的几种方法,包括reload方法.replace方法.自动刷新方法等.有需要的朋友参考下吧 如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法

js刷新页面

1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL.语法: locat

js 刷新页面的方法

如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过"前

javascript刷新页面的方法汇总

如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面. 语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过"前进

javascript刷新页面(转载)

如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后

JSF中使用f:ajax标签无刷新页面改变数据

ajax本是用在前端的一种异步请求数据的操作,广泛用于js中,一般的js框架如jq都有被封装好的方法,用于发起异步请求操作.异步操作可以增强用户体验和操作,越来越多的程序都在使用ajax.JSF的facelets内置了一个ajax标签,可用于简单的ajax操作. f:ajax 有几个常用属性,分别是:event.listener.render. 1.event:event 对应一个js事件名,该事件名省略了开头的”on“字符,例如点击事件是onclick,那么只需要填入click即可.类似事件还

js刷新页面方法

1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet])   参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的URL.语法: locat