zoukankan      html  css  js  c++  java
  • 一个类似股票看板的自刷新页面的制作

    前一阵,有个基于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表记录取得结果,分析需要访问次数和已经访问次数是否相等,否则调用自身再次访问,是则退出函数。

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

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

     

  • 相关阅读:
    Python 类中方法的内部变量,命名加'self.'变成 self.xxx 和不加直接 xxx 的区别
    用foreach遍历 datagridView 指定列所有的内容
    treeView1.SelectedNode.Level
    YES NO 上一个 下一个
    正则 单词全字匹配查找 reg 边界查找 精确匹配 只匹配字符 不含连续的字符
    抓取2个字符串中间的字符串
    sqlite 60000行 插入到数据库只用不到2秒
    将多行文本以单行的格式保存起来 读和写 ini
    将秒转换成时间格式
    richtextbox Ctrl+V只粘贴纯文本格式
  • 原文地址:https://www.cnblogs.com/heyang78/p/4194942.html
Copyright © 2011-2022 走看看