天天看點

一個類似股票看闆的自重新整理頁面的制作

前一陣,有個基于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表記錄取得結果,分析需要通路次數和已經通路次數是否相等,否則調用自身再次通路,是則退出函數。

為了提示使用者進度,前台用一個定時函數取得表格裡的需要通路次數和已經通路次數,統計後用進度條的方式提示使用者。

再思基本沒有問題後,就做了下來,頁面截圖如下:

一個類似股票看闆的自重新整理頁面的制作

本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/xiandedanteng/p/4194942.html,如需轉載請自行聯系原作者