本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,尤其涉及一種用于一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新技術(shù)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的發(fā)展,越來(lái)越多的數(shù)據(jù)服務(wù)產(chǎn)品推向市場(chǎng)。這些產(chǎn)品經(jīng)常需要開發(fā)實(shí)時(shí)報(bào)表,用戶在通過(guò)網(wǎng)絡(luò)瀏覽器對(duì)這些報(bào)表中的曲線圖進(jìn)行瀏覽時(shí),就能夠直觀的查看各類數(shù)據(jù)。為了更好地體現(xiàn)數(shù)據(jù)的實(shí)時(shí)性,通常的做法是對(duì)曲線圖進(jìn)行動(dòng)態(tài)地更新,使得用戶能夠及時(shí)了解數(shù)據(jù)的變化。目前常用的動(dòng)態(tài)曲線的形式為:由各個(gè)表示某一時(shí)刻股價(jià)的數(shù)據(jù)點(diǎn)以及連接各個(gè)數(shù)據(jù)點(diǎn)之間的連線組成,每個(gè)數(shù)據(jù)點(diǎn)一經(jīng)生成后就不再更新,例如股票行情曲線。由于其數(shù)據(jù)點(diǎn)一經(jīng)生成就不再更新,不利于直觀的展現(xiàn)某一數(shù)據(jù)周期內(nèi)的累積量,例如用戶如果需要查看某一數(shù)據(jù)在一個(gè)小時(shí)內(nèi)的累積量,那么通過(guò)上述曲線則無(wú)法直觀獲得這一信息。
申請(qǐng)內(nèi)容
本申請(qǐng)的一個(gè)目的是提供一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法和設(shè)備,使得用戶可以直觀得獲取信息。
為實(shí)現(xiàn)上述目的,本申請(qǐng)?zhí)峁┝艘环N動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法,所述方法包括:
在每一更新時(shí)刻,若當(dāng)前顯示的動(dòng)態(tài)曲線存在數(shù)據(jù)點(diǎn),則獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn);
根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn);
當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期時(shí),在該數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)并顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn),包括:
根據(jù)預(yù)先配置的路徑由數(shù)據(jù)源中異步獲取當(dāng)前更新時(shí)刻的數(shù)據(jù);
根據(jù)所述當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,還包括:
對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行突出顯示。
進(jìn)一步地,根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)之后,還包括:
當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)之后,還包括:
當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),取消對(duì)所述第一數(shù)據(jù)點(diǎn)的突出顯示,并在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之前,還包括:
判斷是否滿足清空條件,若滿足清空條件,則將所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置作為所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。
進(jìn)一步地,所述清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,包括:
將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線;
將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線之后,還包括:
當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線;
暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
進(jìn)一步地,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,并顯示所述歷史動(dòng)態(tài)曲線,包括:
當(dāng)獲取到切換操作時(shí),根據(jù)所述切換操作將所述當(dāng)前顯示的動(dòng)態(tài)曲線 保存為第一動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線;
暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新之后,還包括:
當(dāng)獲取到恢復(fù)操作時(shí),根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,顯示所述第一動(dòng)態(tài)曲線;
恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
進(jìn)一步地,在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之后,還包括:
生成并顯示所述第一數(shù)據(jù)點(diǎn)與所述第二數(shù)據(jù)點(diǎn)之間的連線。
進(jìn)一步地,所述方法還包括:
檢測(cè)用戶操作點(diǎn)的位置,當(dāng)所述用戶操作點(diǎn)與所述數(shù)據(jù)點(diǎn)重合時(shí),在所述用戶操作點(diǎn)的位置顯示所述數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
本申請(qǐng)還提供了另一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法,該方法包括:
獲取用于生成所述動(dòng)態(tài)曲線的實(shí)時(shí)組件;
向所述實(shí)時(shí)組件寫入配置信息;
初始化所述實(shí)時(shí)組件,根據(jù)所述實(shí)時(shí)組件的配置信息執(zhí)行上述方法。
進(jìn)一步地,所述實(shí)時(shí)組件包括圖形展示單元以及功能調(diào)用單元;
初始化所述實(shí)時(shí)組件,根據(jù)所述實(shí)時(shí)組件的配置信息執(zhí)行前述的任意一種方法,包括:
根據(jù)配置信息由功能調(diào)用單元獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,所述圖形展示單元生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線;
所述圖形展示單元和功能調(diào)用單元執(zhí)行前述的任意一種方法對(duì)所述動(dòng)態(tài)曲線中數(shù)據(jù)點(diǎn)更新。
進(jìn)一步地,所述配置信息包括顯示參數(shù)信息和調(diào)用參數(shù)信息;
根據(jù)配置信息由功能調(diào)用單元獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,由所述圖形展示單元生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線,包括:
所述功能調(diào)用單元根據(jù)所述調(diào)用參數(shù)信息獲取生成初始數(shù)據(jù)點(diǎn)的數(shù) 據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,所述圖形展示單元根據(jù)所述顯示參數(shù)信息生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線。
根據(jù)本申請(qǐng)的另一方面,還提供了一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,其中,所述設(shè)備包括:
第一裝置,用于在每一更新時(shí)刻,若當(dāng)前顯示的動(dòng)態(tài)曲線存在數(shù)據(jù)點(diǎn),則獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn);
第二裝置,用于根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn);
第三裝置,用于當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期時(shí),在該數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)并顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,所述第二裝置包括:
第二一模塊,用于根據(jù)預(yù)先配置的路徑由數(shù)據(jù)源中異步獲取當(dāng)前更新時(shí)刻的數(shù)據(jù);
第二二模塊,用于根據(jù)所述當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,所述第一裝置還用于:
在獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行突出顯示。
進(jìn)一步地,該設(shè)備還包括:
第四裝置,用于當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,所述第四裝置還用于:
當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),取消對(duì)所述第一數(shù)據(jù)點(diǎn)的突出顯示,并在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。
進(jìn)一步地,該設(shè)備還包括:
第五裝置,用于在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之前,判斷是否滿足清空條件,若滿足清空條件,則將所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置作為所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的 顯示位置,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。
進(jìn)一步地,所述第五裝置,用于將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線;
所述設(shè)備還包括第六裝置,該第六裝置包括:
第六一模塊,用于在將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線之后,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線;
第六二模塊,用于暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
進(jìn)一步地,所述第六一模塊,用于:
在將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線之后,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為第一動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線;
所述第六裝置還包括:
第六三模塊,用于在暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新之后,當(dāng)獲取到恢復(fù)操作時(shí),根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,顯示所述第一動(dòng)態(tài)曲線;
第六四模塊,用于恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
進(jìn)一步地,該設(shè)備還包括:
第七裝置,用于在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之后,生成并顯示所述第一數(shù)據(jù)點(diǎn)與所述第二數(shù)據(jù)點(diǎn)之間的連線。
進(jìn)一步地,該設(shè)備還包括:
第八裝置,用于檢測(cè)用戶操作點(diǎn)的位置,當(dāng)所述用戶操作點(diǎn)與所述數(shù)據(jù)點(diǎn)重合時(shí),在所述用戶操作點(diǎn)的位置顯示所述數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。
本申請(qǐng)還提供了另一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備包括:
第九裝置,用于獲取用于生成所述動(dòng)態(tài)曲線的實(shí)時(shí)組件;
第十裝置,用于向所述實(shí)時(shí)組件寫入配置信息;
第十一裝置,用于初始化所述實(shí)時(shí)組件,根據(jù)所述實(shí)時(shí)組件的配置信 息控制前述任意一種設(shè)備的運(yùn)行。
進(jìn)一步地,所述實(shí)時(shí)組件包括圖形展示單元以及功能調(diào)用單元;
所述第十一裝置,用于:
根據(jù)配置信息指示功能調(diào)用單元獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,指示所述圖形展示單元生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線;
指示所述圖形展示單元和功能調(diào)用單元控制前述任意一種設(shè)備進(jìn)行對(duì)所述動(dòng)態(tài)曲線中數(shù)據(jù)點(diǎn)的更新。
進(jìn)一步地,所述配置信息包括顯示參數(shù)信息和調(diào)用參數(shù)信息;
所述第十一裝置,用于:
指示所述功能調(diào)用單元根據(jù)所述調(diào)用參數(shù)信息獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,指示所述圖形展示單元根據(jù)所述顯示參數(shù)信息生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線;
指示所述圖形展示單元和功能調(diào)用單元控制前述任意一種設(shè)備進(jìn)行對(duì)所述動(dòng)態(tài)曲線中數(shù)據(jù)點(diǎn)的更新。
與現(xiàn)有技術(shù)相比,在本申請(qǐng)?zhí)峁┑募夹g(shù)方案能夠獲取曲線上最近一個(gè)更新時(shí)刻的數(shù)據(jù)點(diǎn),然后與當(dāng)前更新時(shí)刻生成的數(shù)據(jù)點(diǎn)進(jìn)行比較,若屬于同一數(shù)據(jù)周期,則會(huì)將新生成的數(shù)據(jù)點(diǎn)替換原來(lái)的數(shù)據(jù)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)點(diǎn)在一個(gè)數(shù)據(jù)周期內(nèi)不斷進(jìn)行更新顯示,可以更加直觀的展現(xiàn)例如某一數(shù)據(jù)在一定周期內(nèi)的累積量等信息。此外,本申請(qǐng)?zhí)峁┑牧硪环桨钢?,通過(guò)實(shí)時(shí)組件僅需要寫入少量代碼,例如自定義的一些配置信息等,即可實(shí)現(xiàn)數(shù)據(jù)點(diǎn)更新的功能,由于大部分程序代碼采用了模塊化的形式,提高了代碼的可讀性和可維護(hù)性,降低了開發(fā)人員對(duì)編程知識(shí)的依賴程度,提高了開發(fā)效率。
附圖說(shuō)明
通過(guò)閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為本申請(qǐng)實(shí)施例提供的第一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法的流程圖;
圖2為第一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法中步驟S102的處理流程圖;
圖3(a)~3(b)為數(shù)據(jù)點(diǎn)更新時(shí)的顯示效果示意圖;
圖4為本申請(qǐng)實(shí)施例提供的第二種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法的流程圖;
圖5為本申請(qǐng)實(shí)施例提供的第三種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法的流程圖;
圖6為本申請(qǐng)實(shí)施例中涉及的一張動(dòng)態(tài)曲線圖表的示意圖;
圖7為實(shí)時(shí)組件的初始化流程圖;
圖8為實(shí)時(shí)組件初始化流程中箭頭的監(jiān)聽(tīng)程序的監(jiān)聽(tīng)流程圖;
圖9為本申請(qǐng)實(shí)施例提供的第一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖10為動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備中第二裝置的結(jié)構(gòu)示意圖;
圖11為本申請(qǐng)實(shí)施例提供的第二種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖12為本申請(qǐng)實(shí)施例提供的第三種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖13為本申請(qǐng)實(shí)施例提供的第四種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖14為本申請(qǐng)實(shí)施例提供的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備中第六裝置的優(yōu)選結(jié)構(gòu)示意圖;
圖15為本申請(qǐng)實(shí)施例提供的第五種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖16為本申請(qǐng)實(shí)施例提供的第六種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
圖17為本申請(qǐng)實(shí)施例提供的第七種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備的結(jié)構(gòu)示意圖;
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本申請(qǐng)作進(jìn)一步詳細(xì)描述。
在本申請(qǐng)一個(gè)典型的配置中,終端、服務(wù)網(wǎng)絡(luò)的設(shè)備和可信方均包括一個(gè)或多個(gè)處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(ROM)或閃存(flash RAM)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由任何方法或技術(shù)來(lái)實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)、其他類型的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問(wèn)的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
圖1示出了本申請(qǐng)實(shí)施例提供的一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法的流程圖,該方法具體包括以下步驟:
步驟S101,在每一更新時(shí)刻,若當(dāng)前顯示的動(dòng)態(tài)曲線存在數(shù)據(jù)點(diǎn),則獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn);
步驟S102,根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn);
步驟S103,當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期時(shí),在該數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)并顯示所述第二數(shù)據(jù)點(diǎn)。
在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,所述第一數(shù)據(jù)點(diǎn)及第二數(shù)據(jù)點(diǎn)分別用來(lái)指代動(dòng)態(tài)曲線更新過(guò)程中各階段特定的數(shù)據(jù)點(diǎn)。例如,所述第一數(shù)據(jù) 點(diǎn)為前一更新時(shí)刻更新顯示的數(shù)據(jù)點(diǎn),所述第二數(shù)據(jù)點(diǎn)為當(dāng)前更新時(shí)刻生成、并即將更新顯示的數(shù)據(jù)點(diǎn)。在下一更新時(shí)刻,本次更新時(shí)的第二數(shù)據(jù)點(diǎn)即成為下次更新時(shí)的第一數(shù)據(jù)點(diǎn)。
在本申請(qǐng)?zhí)峁┑募夹g(shù)方案會(huì)獲取曲線上最近一個(gè)更新時(shí)刻更新的數(shù)據(jù)點(diǎn),然后將當(dāng)前更新時(shí)刻生成的數(shù)據(jù)點(diǎn)進(jìn)行比較,如果兩個(gè)數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期,則會(huì)將新生成的數(shù)據(jù)點(diǎn)替換原來(lái)的數(shù)據(jù)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)點(diǎn)在一個(gè)數(shù)據(jù)周期內(nèi)不斷進(jìn)行更新,由此提供一種區(qū)別于現(xiàn)有動(dòng)態(tài)曲線的數(shù)據(jù)展現(xiàn)方式,可以更加直觀的展現(xiàn)例如某一數(shù)據(jù)在一定周期內(nèi)的累積量等信息。
在本實(shí)施例中,所述數(shù)據(jù)周期可以根據(jù)實(shí)際的需求設(shè)置不同的時(shí)長(zhǎng),例如設(shè)置為一個(gè)小時(shí)、十五分鐘等。每個(gè)數(shù)據(jù)周期內(nèi)存在多個(gè)更新時(shí)刻,每當(dāng)處于更新時(shí)刻,就會(huì)執(zhí)行上述步驟S101至步驟S103,以完成對(duì)數(shù)據(jù)點(diǎn)的更新,同樣地更新時(shí)刻的間隔也可以根據(jù)實(shí)際需求設(shè)置,比如用戶對(duì)數(shù)據(jù)的實(shí)時(shí)性要求較高,那么可以將更新時(shí)刻的間隔設(shè)置的較短,如1秒鐘。在實(shí)際應(yīng)用中,可以通過(guò)定時(shí)器來(lái)實(shí)現(xiàn)每一更新時(shí)刻的觸發(fā),將定時(shí)器邏輯的觸發(fā)間隔設(shè)置為1秒,每次觸發(fā)時(shí):執(zhí)行一次步驟S101至步驟S103的數(shù)據(jù)點(diǎn)更新。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于數(shù)據(jù)周期、更新時(shí)刻的間隔以及每一更新時(shí)刻的觸發(fā)的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
在此,動(dòng)態(tài)曲線由數(shù)據(jù)點(diǎn)以及連接相鄰兩個(gè)數(shù)據(jù)點(diǎn)之間的連線構(gòu)成,其中每個(gè)數(shù)據(jù)點(diǎn)(包括第一數(shù)據(jù)點(diǎn)和第二數(shù)據(jù)點(diǎn))表示在對(duì)應(yīng)的數(shù)據(jù)周期內(nèi)的數(shù)據(jù)。例如在某一應(yīng)用場(chǎng)景中,動(dòng)態(tài)曲線上的數(shù)據(jù)點(diǎn)用于表示某一應(yīng)用程序在每個(gè)小時(shí)內(nèi)新注冊(cè)的用戶數(shù)量,每秒鐘對(duì)數(shù)據(jù)點(diǎn)進(jìn)行一次更新,那么每個(gè)小時(shí)即為一個(gè)數(shù)據(jù)周期,如12:00:01~13:00:00、13:00:01~14:00:00、14:00:01~15:00:00等,其中動(dòng)態(tài)曲線的X坐標(biāo)軸和Y坐標(biāo)軸可以分別表示時(shí)間和新注冊(cè)的用戶數(shù)量。在本實(shí)施例中,定義12:00:01~13:00:00為數(shù)據(jù)周期A、13:00:01~14:00:00為數(shù)據(jù)周期B、14:00:01~15:00:00為數(shù)據(jù)周期C,其中所述數(shù)據(jù)周期的顯示位置為動(dòng)態(tài)曲 線的X坐標(biāo)軸上的特定位置,例如數(shù)據(jù)周期A~C的顯示位置可以分別設(shè)定為X坐標(biāo)軸上13:00:00、14:00:00、15:00:00的位置。若當(dāng)前時(shí)間為13:15:16,那么13:00:00位置的數(shù)據(jù)點(diǎn)表示12:00:01~13:00:00內(nèi),新注冊(cè)的用戶數(shù)量,由于當(dāng)前時(shí)間已經(jīng)經(jīng)過(guò)13:00:00,那么該數(shù)據(jù)點(diǎn)已經(jīng)不做更新,而14:00:00位置的數(shù)據(jù)點(diǎn)表示13:00:01至前一更新時(shí)刻(即13:15:15)內(nèi)的新增用戶數(shù)量,該數(shù)據(jù)點(diǎn)即為前述的第一數(shù)據(jù)點(diǎn)。假設(shè)在13:00:01至13:15:15內(nèi),已經(jīng)有5000個(gè)新注冊(cè)的用戶,在13:15:16這一秒內(nèi)又有3個(gè)新注冊(cè)的用戶,那么第二數(shù)據(jù)點(diǎn)表示新注冊(cè)的用戶數(shù)量即為5003。由于13:15:15和13:15:16均屬于數(shù)據(jù)周期B,數(shù)據(jù)周期B的顯示位置處的第一數(shù)據(jù)點(diǎn)(14:00:00,5000)會(huì)被清除,同時(shí)顯示所述第二數(shù)據(jù)點(diǎn)(14:00:00,5003),由此完成了數(shù)據(jù)點(diǎn)的更新。
對(duì)于數(shù)據(jù)源中某一更新時(shí)刻的數(shù)據(jù),在根據(jù)該數(shù)據(jù)生成數(shù)據(jù)點(diǎn)時(shí),可以對(duì)數(shù)據(jù)進(jìn)行一定程度的數(shù)據(jù)處理,例如進(jìn)行篩選,以篩除一些可能不準(zhǔn)確的數(shù)據(jù)。如在上例的應(yīng)用場(chǎng)景中,可以對(duì)用戶所用設(shè)備的物理地址進(jìn)行過(guò)濾,例如用戶使用同一物理地址的終端注冊(cè)了5個(gè)賬號(hào),在生成數(shù)據(jù)點(diǎn)時(shí),可以對(duì)根據(jù)物理地址對(duì)該五個(gè)注冊(cè)信息進(jìn)行過(guò)濾,僅記錄一個(gè)作為新注冊(cè)的用戶,由此來(lái)保證數(shù)據(jù)點(diǎn)所表示的數(shù)據(jù)的準(zhǔn)確性。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于數(shù)據(jù)處理的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的數(shù)據(jù)處理的方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
優(yōu)選地,步驟S102中根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)的方法可以采用如圖2所示的處理流程實(shí)現(xiàn),具體步驟包括:
S201,根據(jù)預(yù)先配置的路徑由數(shù)據(jù)源中異步獲取當(dāng)前更新時(shí)刻的數(shù)據(jù);
S202,根據(jù)所述當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)。
其中,在所述動(dòng)態(tài)曲線的圖表通過(guò)網(wǎng)頁(yè)顯示場(chǎng)景下,異步獲取可以采用AJAX(Asynchronous Javascript And XML,異步Javascript和XML技術(shù))。所述AJAX是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù),其通過(guò)在瀏覽器后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下對(duì) 網(wǎng)頁(yè)的某部分(即需要更新的數(shù)據(jù)點(diǎn))進(jìn)行更新,從而加快數(shù)據(jù)點(diǎn)更新的速度。
為了使得用戶能夠更加直觀查看數(shù)據(jù)點(diǎn)的更新情況,在步驟S101中獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,還包括對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行突出顯示。在此,突出顯示的方式包括但不限于:放大顯示、改變數(shù)據(jù)點(diǎn)顏色、改變數(shù)據(jù)點(diǎn)透明度、增加邊框等。以放大顯示顯示為例,在步驟S101中第一數(shù)據(jù)點(diǎn)3A的實(shí)際顯示效果如圖3(a)所示,當(dāng)在數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)3A并顯示所述第二數(shù)據(jù)點(diǎn)3B后,由于并未對(duì)所述第二數(shù)據(jù)點(diǎn)3B進(jìn)行突出顯示,第二數(shù)據(jù)點(diǎn)3B顯示為正常大小,如圖3(b)所示,在整個(gè)過(guò)程中通過(guò)放大以及正常顯示,數(shù)據(jù)點(diǎn)的變化過(guò)程呈現(xiàn)一閃爍的效果,使得數(shù)據(jù)點(diǎn)更新的動(dòng)態(tài)效果更加直觀,便于用戶查看。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于突出顯示的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的突出顯示的方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
由于在實(shí)際場(chǎng)景中也會(huì)出現(xiàn)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期的情形,因此本申請(qǐng)實(shí)施例還提供了一種優(yōu)選動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法,該方法的處理流程如圖4所示,具體包括:
步驟S101,在每一更新時(shí)刻,若當(dāng)前顯示的動(dòng)態(tài)曲線存在數(shù)據(jù)點(diǎn),則獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn);
步驟S102,根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn);
步驟S103,當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期時(shí),在該數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)并顯示所述第二數(shù)據(jù)點(diǎn);
步驟S104,當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。
結(jié)合圖1可知,該方法在根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)之后,若確定所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期,則會(huì)在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn),即不對(duì)第一數(shù)據(jù)點(diǎn)進(jìn)行更新,而是在動(dòng)態(tài)曲線中新插入一個(gè)數(shù)據(jù)點(diǎn)。 例如,當(dāng)前時(shí)間為14:00:01,在更新時(shí)刻獲取生成的第二數(shù)據(jù)點(diǎn)屬于數(shù)據(jù)周期C(14:00:01~15:00:00),而前一更新時(shí)刻生成的第一數(shù)據(jù)點(diǎn)則數(shù)據(jù)周期B(13:00:01~14:00:00),第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置為X坐標(biāo)軸上的15:00:00的位置,由此在當(dāng)前的更新時(shí)刻,14:00:00位置處的第一數(shù)據(jù)點(diǎn)不會(huì)被清除,而是直接在15:00:00位置處顯示第二數(shù)據(jù)點(diǎn)。在后續(xù)的更新時(shí)刻14:00:02至15:00:00,由于其生成的數(shù)據(jù)點(diǎn)均屬于同一數(shù)據(jù)周期C,則會(huì)執(zhí)行步驟S103所述的步驟,不再插入顯示新的數(shù)據(jù)點(diǎn),而是對(duì)原有的數(shù)據(jù)點(diǎn)進(jìn)行更新顯示;
若在步驟S101中獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行了突出顯示,相應(yīng)地,所述步驟S104可以具體包括:當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),取消對(duì)所述第一數(shù)據(jù)點(diǎn)的突出顯示,并在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。仍以前述放大的突出顯示方式為例,上一個(gè)數(shù)據(jù)周期的第一數(shù)據(jù)在放大后隨即取消,形成閃爍效果,同時(shí)第二數(shù)據(jù)點(diǎn)在當(dāng)前的數(shù)據(jù)周期的顯示位置正常顯示,使得用戶能夠明確獲知已經(jīng)進(jìn)入下一數(shù)據(jù)周期,前一數(shù)據(jù)周期的數(shù)據(jù)不再更新。
進(jìn)一步地,本申請(qǐng)實(shí)施例還提供了一種更優(yōu)選的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法,該方法在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之前,還包括:判斷是否滿足清空條件,若滿足清空條件,則將所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置作為所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。
其中,所述清空條件可以根據(jù)實(shí)際應(yīng)用中的需求來(lái)設(shè)置,例如清空條件可以是當(dāng)前時(shí)間達(dá)到第二天的00:00:01,所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置即為第一天的00:00:01的位置,即動(dòng)態(tài)曲線僅顯示一天的數(shù)據(jù),第二天開始時(shí)自動(dòng)清空曲線,重新開始繪制。清空的周期可以根據(jù)實(shí)際需求設(shè)置,除前述的24小時(shí)之外,也可以設(shè)置為4小時(shí)、12小時(shí)等等。
此外,清空條件還可以是用戶輸入的某些特定操作,例如查看歷史曲線數(shù)據(jù)的切換操作。在此種情形下,由于需要獲取歷史曲線數(shù)據(jù),前述的清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,具體包括:將所述當(dāng)前顯示的動(dòng)態(tài)曲線保 存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。此時(shí),當(dāng)獲取到切換操作時(shí),會(huì)根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,然后顯示保存的歷史動(dòng)態(tài)曲線。所述切換操作包括但不限于:操作點(diǎn)在特定位置上的點(diǎn)擊或滑動(dòng)操作、通過(guò)交互界面輸入的文本指令等。例如,可以在動(dòng)態(tài)曲線的圖表界面左側(cè)設(shè)置一個(gè)左箭頭的按鈕,當(dāng)用戶的操作點(diǎn)點(diǎn)擊該左箭頭即為切換操作,點(diǎn)擊一次即切換至前一日的動(dòng)態(tài)曲線;再如,切換操作為在動(dòng)態(tài)曲線的圖表區(qū)域內(nèi)向左滑動(dòng),滑動(dòng)一次即切換至前一日的動(dòng)態(tài)曲線或者根據(jù)滑動(dòng)的距離切換至不同的歷史動(dòng)態(tài)曲線;還如,在提供的交互界面中輸入歷史動(dòng)態(tài)曲線的編號(hào),即可切換至對(duì)應(yīng)的歷史動(dòng)態(tài)曲線。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于切換操作的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的切換操作如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
其中,將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,包括但不限于以下方式:僅保存歷史動(dòng)態(tài)曲線中各個(gè)數(shù)據(jù)點(diǎn)的信息,或者保存各個(gè)數(shù)據(jù)點(diǎn)以及數(shù)據(jù)點(diǎn)之間的連線的信息等。若僅保存歷史動(dòng)態(tài)曲線中各個(gè)數(shù)據(jù)點(diǎn)的信息,則顯示歷史動(dòng)態(tài)曲線的具體步驟如下:首先,根據(jù)保存的信息生成各個(gè)數(shù)據(jù)點(diǎn)并顯示,然后根據(jù)數(shù)據(jù)點(diǎn)生成并顯示數(shù)據(jù)點(diǎn)之間的連線,以展示完整的動(dòng)態(tài)曲線。當(dāng)然,為了保證數(shù)據(jù)點(diǎn)與連線可以同步顯示,可以在根據(jù)保存的信息生成數(shù)據(jù)點(diǎn)以及連線之后,再同時(shí)顯示數(shù)據(jù)點(diǎn)及其連線。若同時(shí)保存各個(gè)數(shù)據(jù)點(diǎn)以及數(shù)據(jù)點(diǎn)之間的連線的信息等,則僅需要獲取這些信息,并根據(jù)這些信息生成并顯示即可。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于保存歷史動(dòng)態(tài)曲線的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的保存方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
由于獲取到切換操作后所顯示的曲線為歷史動(dòng)態(tài)曲線,在達(dá)到更新時(shí)刻后無(wú)需再對(duì)當(dāng)前時(shí)間的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)進(jìn)行更新,因此在顯示所述歷史動(dòng)態(tài)曲線之后,暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。在此,所述更新僅指對(duì)數(shù)據(jù)點(diǎn)在動(dòng)態(tài)曲線中顯示的更新,但是在數(shù)據(jù)源中不會(huì)停止數(shù)據(jù)記錄。仍以前述表示某一應(yīng)用程序在每個(gè)小時(shí)內(nèi)新注冊(cè)的用戶數(shù)量的 應(yīng)用場(chǎng)景為例,假設(shè)歷史動(dòng)態(tài)曲線的數(shù)據(jù)以及數(shù)據(jù)源中新注冊(cè)用戶數(shù)量的數(shù)據(jù)保存于云端的服務(wù)器中,動(dòng)態(tài)曲線通過(guò)更新設(shè)備上的瀏覽器顯示,新注冊(cè)用戶數(shù)量的信息由安裝有應(yīng)用程序的移動(dòng)終端的發(fā)送給服務(wù)器并保存于數(shù)據(jù)源中。在當(dāng)前時(shí)間13:15:16時(shí),若更新設(shè)備獲取到用戶輸入的切換操作,更新設(shè)備會(huì)清除當(dāng)前顯示的動(dòng)態(tài)曲線,同時(shí)根據(jù)配置的路徑信息會(huì)由服務(wù)器獲取保存的歷史動(dòng)態(tài)曲線,并在瀏覽器中顯示該歷史動(dòng)態(tài)曲線。此時(shí),安裝有應(yīng)用程序的移動(dòng)終端仍然會(huì)向服務(wù)器發(fā)送新注冊(cè)用戶數(shù)量的信息,例如在13:00:01至13:15:15內(nèi),已經(jīng)有5000個(gè)新注冊(cè)的用戶,在13:15:16至13:16:11的時(shí)間段內(nèi)新注冊(cè)的用戶又增加了20人,數(shù)據(jù)源仍然會(huì)接收這些信息并進(jìn)行保存,使得更新設(shè)備在需要更新時(shí)仍能夠得到最新的數(shù)據(jù),但是此時(shí)顯示的動(dòng)態(tài)曲線不會(huì)發(fā)生變化。
進(jìn)一步地,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,并顯示所述歷史動(dòng)態(tài)曲線,包括:當(dāng)獲取到切換操作時(shí),根據(jù)所述切換操作將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為第一動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線。而暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新之后,還包括:當(dāng)獲取到恢復(fù)操作時(shí),根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,顯示所述第一動(dòng)態(tài)曲線;以及恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
通過(guò)上述方式,若用戶在切換至歷史動(dòng)態(tài)曲線之后,想要繼續(xù)查看當(dāng)前時(shí)間的動(dòng)態(tài)曲線,可以通過(guò)恢復(fù)操作便捷地實(shí)現(xiàn)。與所述切換操作對(duì)應(yīng)地,所述恢復(fù)操作包括但不限于:操作點(diǎn)在特定位置上的點(diǎn)擊或滑動(dòng)操作、通過(guò)交互界面輸入的文本指令等。例如,點(diǎn)擊右箭頭的操作、在動(dòng)態(tài)曲線的圖表區(qū)域內(nèi)向右滑動(dòng)或者輸入第一動(dòng)態(tài)曲線的編號(hào)等。接上例,在當(dāng)前時(shí)間13:16:12時(shí),獲取到用戶輸入的恢復(fù)操作,更新設(shè)備根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,并在瀏覽器中顯示所述第一動(dòng)態(tài)曲線,同時(shí)恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。由于在切換至歷史動(dòng)態(tài)曲線時(shí)(即13:15:16),第一動(dòng)態(tài)曲線顯示的數(shù)據(jù)點(diǎn)為13:15:15更新的數(shù)據(jù)點(diǎn)(14:00:00,5000),13:16:12時(shí)恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。若13:16:12內(nèi)又有1個(gè)新注冊(cè)的用戶,則該數(shù)據(jù)周期內(nèi)的數(shù) 據(jù)點(diǎn)會(huì)更新為(14:00:00,5021)。
優(yōu)選地,在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之后,還包括:生成并顯示所述第一數(shù)據(jù)點(diǎn)與所述第二數(shù)據(jù)點(diǎn)之間的連線。在數(shù)據(jù)點(diǎn)更新的過(guò)程中,在達(dá)到另一個(gè)數(shù)據(jù)周期后會(huì)插入新的數(shù)據(jù)點(diǎn),此時(shí)需要增加數(shù)據(jù)點(diǎn)之間的連線以形成完整的動(dòng)態(tài)曲線。具體地,當(dāng)時(shí)間達(dá)到14:00:01時(shí),由于進(jìn)入了下一個(gè)數(shù)據(jù)周期,有新的數(shù)據(jù)點(diǎn)插入到動(dòng)態(tài)曲線下一數(shù)據(jù)周期的顯示位置(即15:00:00處),此時(shí)會(huì)生成并顯示14:00:00位置處的數(shù)據(jù)點(diǎn)與15:00:00位置處的數(shù)據(jù)點(diǎn)之間的連線。此外,為了保證動(dòng)態(tài)曲線的實(shí)時(shí)性,兩個(gè)數(shù)據(jù)點(diǎn)之間的連線也會(huì)隨著數(shù)據(jù)點(diǎn)的更新而實(shí)時(shí)更新。例如,14:00:01時(shí),14:00:00位置處的數(shù)據(jù)點(diǎn)已不做更新,假設(shè)其數(shù)據(jù)點(diǎn)坐標(biāo)為(14:00:00,5350),15:00:00位置處的數(shù)據(jù)點(diǎn)坐標(biāo)為(15:00:00,5352)。當(dāng)時(shí)間又經(jīng)過(guò)一秒達(dá)到14:00:02時(shí),14:00:00位置處的數(shù)據(jù)點(diǎn)15:00:00位置處的數(shù)據(jù)點(diǎn)在該次更新后由(15:00:00,5352)更新為(15:00:00,5356),那么,(14:00:00,5350)與(15:00:00,5352)之間的連線會(huì)實(shí)時(shí)更新為(14:00:00,5350)與(15:00:00,5356)之間的連線。兩個(gè)數(shù)據(jù)點(diǎn)之間的連線可以僅表示數(shù)據(jù)點(diǎn)所表示的數(shù)據(jù)之間的變化趨勢(shì),而無(wú)需表示具體數(shù)據(jù),例如越接近兩個(gè)數(shù)據(jù)點(diǎn)的位置,該連線的切線越接近水平,越接近兩個(gè)數(shù)據(jù)點(diǎn)的中央位置,該連線的切線越接近垂直。
進(jìn)一步地,前述的動(dòng)態(tài)曲線數(shù)據(jù)點(diǎn)更新方法還包括:檢測(cè)用戶操作點(diǎn)的位置,當(dāng)所述用戶操作點(diǎn)與所述數(shù)據(jù)點(diǎn)重合時(shí),在所述用戶操作點(diǎn)的位置顯示所述數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。由此,使得用戶除了獲知數(shù)據(jù)的變化趨勢(shì)之外,還能夠準(zhǔn)確的獲取數(shù)據(jù)的準(zhǔn)確值。
圖5示出了本申請(qǐng)實(shí)施例還提供了一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新方法,該方法包括:
步驟S501,獲取用于生成所述動(dòng)態(tài)曲線的實(shí)時(shí)組件;
步驟S502,向所述實(shí)時(shí)組件寫入配置信息;
步驟S503,初始化所述實(shí)時(shí)組件,根據(jù)所述實(shí)時(shí)組件的配置信息執(zhí)行前述的方法,從而完成數(shù)據(jù)點(diǎn)。
通過(guò)實(shí)時(shí)組件,僅需要寫入少量代碼,例如自定義的一些配置信息等, 即可實(shí)現(xiàn)數(shù)據(jù)點(diǎn)更新的功能,由于大部分程序代碼采用了模塊化的形式,提高了代碼的可讀性和可維護(hù)性,降低了開發(fā)人員對(duì)編程知識(shí)的依賴程度,提高了開發(fā)效率。
其中,所述實(shí)時(shí)組件包括圖形展示單元以及功能調(diào)用單元。在實(shí)際應(yīng)用中,所述圖形展示單元以及功能調(diào)用單元可以是預(yù)先的程序代碼,例如采用HTML(Hyper Text Markup Language,超文本標(biāo)記語(yǔ)言)以及JavaScript(Java腳本語(yǔ)言),由于JavaScript可以插入到HTML頁(yè)面中,并且由任意的瀏覽器執(zhí)行,通用性較好,并且通過(guò)JavaScript編寫的Highcharts圖表庫(kù)能夠簡(jiǎn)單便捷的在HTML頁(yè)面中添加交互性的圖表,便于動(dòng)態(tài)曲線的繪制。其中,所述配置信息包括顯示參數(shù)信息和調(diào)用參數(shù)信息。在本實(shí)施例中,顯示參數(shù)信息包括但不限于用于調(diào)整圖表在顯示樣式的相關(guān)參數(shù),例如數(shù)據(jù)點(diǎn)的樣式、顏色、線條的顏色、樣式,圖表在頁(yè)面中的位置等,調(diào)用參數(shù)信息包括但不限于實(shí)現(xiàn)功能調(diào)用時(shí)需要使用到的參數(shù),例如數(shù)據(jù)源的相關(guān)信息、函數(shù)的控制參數(shù)等。
具體地,步驟S503包括:所述功能調(diào)用單元根據(jù)所述調(diào)用參數(shù)信息獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,所述圖形展示單元根據(jù)所述顯示參數(shù)信息生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線;以及所述圖形展示單元和功能調(diào)用單元執(zhí)行前述任意一種方法對(duì)所述動(dòng)態(tài)曲線中數(shù)據(jù)點(diǎn)更新。
本實(shí)施例中,HTML部分的程序代碼主要用于展現(xiàn)圖表的外在樣式,包括圖表的位置、大小等,JavaScript部分的程序代碼主要用于實(shí)現(xiàn)圖表的后臺(tái)功能,例如獲取數(shù)據(jù)、生成Highcharts圖形、調(diào)用函數(shù)等,圖6示出了一張動(dòng)態(tài)曲線圖表的示意圖,該圖表對(duì)應(yīng)的動(dòng)態(tài)組件的程序代碼如下,其中HTML部分為:
在此,“chart1”為HTML DOM(HTML Document Object Model,HTML文檔對(duì)象模型)節(jié)點(diǎn),展現(xiàn)為圖6的整個(gè)區(qū)域,相當(dāng)于整個(gè)圖6的最外層的容器,圖6中展現(xiàn)的其它內(nèi)容均包含在區(qū)域中。"realTimeArrow"為圖中內(nèi)部元素的類,用于指定圖6中的圖表顯示區(qū)域6A以及左右箭頭6B、6C的部分顯示效果;此外還分別單獨(dú)規(guī)定了左箭頭6B、右箭頭6C和圖表顯示區(qū)域6A的類,分別為"wdm-left leftArrow-on arrow-icon"、"wdm-right rightArrow arrow-icon"以及和"Chart_area",分別對(duì)圖表顯示區(qū)域6A、左箭頭6B、右箭頭6C的部分顯示效果進(jìn)行了單獨(dú)指定。"margin-right:25px;"表示圖表顯示區(qū)域6A的右邊距為25個(gè)像素。"J_Chart_area"為HTMLDOM節(jié)點(diǎn),用于展現(xiàn)Highcharts圖形(即動(dòng)態(tài)曲線6D),其中HTML DOM用于提供接口,使得程序能夠動(dòng)態(tài)地訪問(wèn)和更新HTML頁(yè)面的內(nèi)容、結(jié)構(gòu)和樣式。在實(shí)際應(yīng)用中,"chart1"、"realTimeArrow"、"wdm-left leftArrow-on arrow-icon"、"wdm-right rightArrow arrow-icon"、"J_Chart_area"以及"chart-area"的無(wú)需在程序代碼的其它部分單獨(dú)定義,可以通過(guò)下述的JavaScript代碼自動(dòng)掃描并綁定。
而JavaScript調(diào)用部分的程序代碼為:
在此,在變量rtConfig中,type表示曲線類型,例如hour、min等,其中hour、min分別表示X坐標(biāo)軸上1小時(shí)或者5分鐘顯示一數(shù)據(jù)點(diǎn),即前述的數(shù)據(jù)周期為1小時(shí)或者5分鐘。
lineParams表示獲取曲線時(shí)需要傳遞到瀏覽器后臺(tái)的參數(shù)集合,其中參數(shù)集合內(nèi)的參數(shù)包括日期、版本信息等等。
pointParams表示獲取當(dāng)前更新時(shí)刻的數(shù)據(jù)點(diǎn)時(shí)需要傳遞到后臺(tái)的參數(shù)集合,其中參數(shù)集合內(nèi)的參數(shù)包括日期、版本信息等等。
lineDS表示獲取曲線的數(shù)據(jù)源。
pointDS表示當(dāng)前更新時(shí)刻的數(shù)據(jù)點(diǎn)的數(shù)據(jù)源。
clickLeftCallBack表示點(diǎn)擊左箭頭獲取數(shù)據(jù)后的回調(diào)函數(shù),這里指向函數(shù)leftOneCallBack,當(dāng)arrow為true時(shí)有效。
clickRightCallBack表示點(diǎn)擊右箭頭獲取數(shù)據(jù)后的回調(diào)函數(shù),這里指向函數(shù)rightOneCallBack,當(dāng)arrow為true時(shí)有效。
offLeftArrow表示點(diǎn)擊左箭頭時(shí)處理函數(shù),這里指向函數(shù)leftOne,當(dāng)arrow為true時(shí)有效。
offRightArrow表示點(diǎn)擊右箭頭時(shí)處理函數(shù),這里指向函數(shù)rightOne,當(dāng)arrow為true時(shí)有效。
arrow,可以是true或者false時(shí),當(dāng)true時(shí)表示前述左箭頭或右箭頭可以點(diǎn)擊,并調(diào)用相關(guān)函數(shù)。
向所述實(shí)時(shí)組件寫入的配置信息(config)包括但不限于曲線類型type、曲線的顏色、線寬和數(shù)據(jù)點(diǎn)的顏色、大小、前述的lineParams、 pointParams、lineDS、pointDS、JavaScript的相關(guān)處理函數(shù)、坐標(biāo)軸的顏色、點(diǎn)形狀等信息。
圖7示出了所述實(shí)時(shí)組件的初始化流程,包括以下步驟:
步驟S701,根據(jù)實(shí)時(shí)組件的config中的type加載對(duì)應(yīng)的曲線類型配置(profile),例如加載的type為hour。config是實(shí)時(shí)組件的配置,指定了相關(guān)的配置信息,用于在初始化實(shí)時(shí)組件時(shí)使用。profile是實(shí)時(shí)組件的具體實(shí)例,在每次初始化時(shí)將config中的相關(guān)屬性信息寫入profile。
步驟S702,用config中的相關(guān)屬性覆蓋當(dāng)前profile中的對(duì)應(yīng)屬性,其中相關(guān)屬性可以包括曲線的顏色、線寬和數(shù)據(jù)點(diǎn)的顏色、大小等。
步驟S703,調(diào)用initLine方法初始化數(shù)據(jù)。其中,所述initLine方法包括:如果當(dāng)前的HTML頁(yè)面中已經(jīng)存在圖表(例如前述方法提及的第一動(dòng)態(tài)曲線、歷史動(dòng)態(tài)曲線等),則會(huì)清空?qǐng)D表,然后根據(jù)當(dāng)前實(shí)例的相關(guān)屬性(如坐標(biāo)軸的配置信息,包括顏色、點(diǎn)形狀),初始化圖表對(duì)象,再根據(jù)config中的lineDS、lineParams異步獲取對(duì)應(yīng)的曲線數(shù)據(jù),然后根據(jù)數(shù)據(jù)繪制曲線。在實(shí)際應(yīng)用中,當(dāng)用戶點(diǎn)擊左箭頭獲取前一天的歷史動(dòng)態(tài)曲線時(shí),由于目前所顯示的時(shí)當(dāng)日的動(dòng)態(tài)曲線,此時(shí)會(huì)清空當(dāng)日的動(dòng)態(tài)曲線,獲取歷史動(dòng)態(tài)曲線的數(shù)據(jù)并顯示所述歷史動(dòng)態(tài)曲線。
步驟S704,調(diào)用當(dāng)前openTimer方法更新數(shù)據(jù)點(diǎn)。所述openTimer方法的觸發(fā)通過(guò)定時(shí)器實(shí)現(xiàn),將定時(shí)器邏輯的觸發(fā)間隔設(shè)置為1秒,每次觸發(fā)時(shí):判斷定時(shí)器是否為空,如果定時(shí)器不為空,則清空定時(shí)器,同時(shí)新建定時(shí)器,執(zhí)行一次圖1或圖4所示的數(shù)據(jù)點(diǎn)更新的處理步驟。
步驟S705,確定是否開啟箭頭,即使得左右箭頭是否可點(diǎn)擊,如果開啟,則執(zhí)行步驟S706,如果不開啟,則完成實(shí)時(shí)組件的初始化。
步驟S706,為箭頭添加監(jiān)聽(tīng)程序,使得點(diǎn)擊點(diǎn)頭時(shí)能夠觸發(fā)相關(guān)處理邏輯。
圖8示出了箭頭的監(jiān)聽(tīng)程序的監(jiān)聽(tīng)流程,包括以下步驟:
步驟S801,獲取到點(diǎn)擊操作;
步驟S802,判斷箭頭是否處于不可點(diǎn)擊的狀態(tài),若為是,則結(jié)束監(jiān)聽(tīng)流程;若為否,執(zhí)行步驟S803;
步驟S803,調(diào)用函數(shù)clickLeftCallBack或者clickRightCallBack,進(jìn)行處理。在本申請(qǐng)實(shí)施例中,clickLeftCallBack函數(shù)可以實(shí)現(xiàn)前述切換操作的功能,即用于向前翻頁(yè),顯示歷史動(dòng)態(tài)曲線,而clickRightCallBack則可以實(shí)現(xiàn)恢復(fù)操作的功能,向后翻頁(yè)直至返回顯示當(dāng)日的動(dòng)態(tài)曲線。
步驟S804,調(diào)用函數(shù)offLeftArrow或者offRightArrow,進(jìn)行處理。若當(dāng)前arrow的值為true,則調(diào)用上述兩個(gè)函數(shù)的作用為點(diǎn)擊左(或右)箭頭后將其置為不可點(diǎn)擊的狀態(tài),若arrow的值為false,點(diǎn)擊左(或右)箭頭后將其置為可點(diǎn)擊的狀態(tài)。
步驟S805,調(diào)用initLine方法初始化數(shù)據(jù)。由于在使用clickLeftCallBack或者clickRightCallBack函數(shù)后,需要清除并顯示曲線,通過(guò)initLine方法即可實(shí)現(xiàn)曲線的切換。
步驟S806,若點(diǎn)擊的是左箭頭,則調(diào)用closeTimer方法,若點(diǎn)擊的是右箭頭,則需要判斷offRightArrow函數(shù)處理后,右箭頭還是否可點(diǎn)擊,若可點(diǎn)擊,則調(diào)用closeTimer方法,若不可點(diǎn)擊,則調(diào)用openTimer方法。其中,openTimer方法用于更新數(shù)據(jù)點(diǎn),在實(shí)時(shí)組件的初始化流程中已經(jīng)說(shuō)明,此處不再贅述,closeTimer方法則用于清除定時(shí)器,即停止更新數(shù)據(jù)點(diǎn),以減少數(shù)據(jù)處理量,降低處理負(fù)荷。
圖9示出了本申請(qǐng)實(shí)施例提供的一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備1的結(jié)構(gòu)示意圖,該設(shè)備1具體包括第一裝置910、第二裝置920和第三裝置930。具體地,第一裝置910在每一更新時(shí)刻,若當(dāng)前顯示的動(dòng)態(tài)曲線存在數(shù)據(jù)點(diǎn),則獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn);第二裝置920根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn);第三裝置930在所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期時(shí),在該數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)并顯示所述第二數(shù)據(jù)點(diǎn)。
在此,本領(lǐng)域技術(shù)人員應(yīng)能理解,所述第一數(shù)據(jù)點(diǎn)及第二數(shù)據(jù)點(diǎn)分別用來(lái)指代動(dòng)態(tài)曲線更新過(guò)程中各階段特定的數(shù)據(jù)點(diǎn)。例如,所述第一數(shù)據(jù)點(diǎn)為前一更新時(shí)刻更新顯示的數(shù)據(jù)點(diǎn),所述第二數(shù)據(jù)點(diǎn)為當(dāng)前更新時(shí)刻生成、并即將更新顯示的數(shù)據(jù)點(diǎn)。在下一更新時(shí)刻,本次更新時(shí)的第二數(shù)據(jù)點(diǎn)即成為下次更新時(shí)的第一數(shù)據(jù)點(diǎn)。
在此,設(shè)備1包括但不限于網(wǎng)絡(luò)設(shè)備、觸控終端或網(wǎng)絡(luò)設(shè)備與觸控終端通過(guò)網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備。在此,所述網(wǎng)絡(luò)設(shè)備包括但不限于如網(wǎng)絡(luò)主機(jī)、單個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或基于云計(jì)算的計(jì)算機(jī)集合等實(shí)現(xiàn);或者由用戶設(shè)備實(shí)現(xiàn)。在此,云由基于云計(jì)算(Cloud Computing)的大量主機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種,由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級(jí)虛擬計(jì)算機(jī)。優(yōu)選地,設(shè)備1還可以是運(yùn)行于網(wǎng)絡(luò)設(shè)備或觸控終端上的軟件程序。在此,所述觸控終端是一種任何可通過(guò)觸屏進(jìn)行人機(jī)交互的電子產(chǎn)品,如智能手機(jī)、PDA、便攜式游戲機(jī)、掌上電腦PPC、便攜式設(shè)備或平板電腦等;其中,觸屏(Touch Screen),包括電容式觸摸屏。本領(lǐng)域技術(shù)人員應(yīng)能理解上述設(shè)備1和觸控終端僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的設(shè)備1或觸控終端如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
在本申請(qǐng)?zhí)峁┑募夹g(shù)方案會(huì)獲取曲線上最近一個(gè)更新時(shí)刻更新的數(shù)據(jù)點(diǎn),然后將當(dāng)前更新時(shí)刻生成的數(shù)據(jù)點(diǎn)進(jìn)行比較,如果兩個(gè)數(shù)據(jù)點(diǎn)屬于同一數(shù)據(jù)周期,則會(huì)將新生成的數(shù)據(jù)點(diǎn)替換原來(lái)的數(shù)據(jù)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)點(diǎn)在一個(gè)數(shù)據(jù)周期內(nèi)不斷進(jìn)行更新,由此提供一種區(qū)別于現(xiàn)有動(dòng)態(tài)曲線的數(shù)據(jù)展現(xiàn)方式,可以更加直觀的展現(xiàn)例如某一數(shù)據(jù)在一定周期內(nèi)的累積量等信息。
在本實(shí)施例中,所述數(shù)據(jù)周期可以根據(jù)實(shí)際的需求設(shè)置不同的時(shí)長(zhǎng),例如設(shè)置為一個(gè)小時(shí)、十五分鐘等。每個(gè)數(shù)據(jù)周期內(nèi)存在多個(gè)更新時(shí)刻,每當(dāng)處于更新時(shí)刻,第一裝置910、第二裝置920和第三裝置930均會(huì)進(jìn)行一次處理,以完成對(duì)數(shù)據(jù)點(diǎn)的更新,同樣地更新時(shí)刻的間隔也可以根據(jù)實(shí)際需求設(shè)置,比如用戶對(duì)數(shù)據(jù)的實(shí)時(shí)性要求較高,那么可以將更新時(shí)刻的間隔設(shè)置的較短,如1秒鐘。在實(shí)際應(yīng)用中,可以通過(guò)定時(shí)器來(lái)實(shí)現(xiàn)每一更新時(shí)刻的觸發(fā),將定時(shí)器邏輯的觸發(fā)間隔設(shè)置為1秒,每次觸發(fā)時(shí):判斷定時(shí)器是否為空,如果定時(shí)器不為空,則清空定時(shí)器,同時(shí)新建定時(shí)器,由第一裝置910、第二裝置920和第三裝置930執(zhí)行一次數(shù)據(jù)點(diǎn)更新。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于數(shù)據(jù)周期、更新時(shí)刻的間隔以及每一更新時(shí)刻的觸發(fā)的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的方式 如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
在此,動(dòng)態(tài)曲線由數(shù)據(jù)點(diǎn)以及連接相鄰兩個(gè)數(shù)據(jù)點(diǎn)之間的連線構(gòu)成,其中每個(gè)數(shù)據(jù)點(diǎn)(包括第一數(shù)據(jù)點(diǎn)和第二數(shù)據(jù)點(diǎn))表示在對(duì)應(yīng)的數(shù)據(jù)周期內(nèi)的數(shù)據(jù)。例如在某一應(yīng)用場(chǎng)景中,動(dòng)態(tài)曲線上的數(shù)據(jù)點(diǎn)用于表示某一應(yīng)用程序在每個(gè)小時(shí)內(nèi)新注冊(cè)的用戶數(shù)量,每秒鐘對(duì)數(shù)據(jù)點(diǎn)進(jìn)行一次更新,那么每個(gè)小時(shí)即為一個(gè)數(shù)據(jù)周期,如12:00:01~13:00:00、13:00:01~14:00:00、14:00:01~15:00:00等,其中動(dòng)態(tài)曲線的X坐標(biāo)軸和Y坐標(biāo)軸可以分別表示時(shí)間和新注冊(cè)的用戶數(shù)量。在本實(shí)施例中,定義12:00:01~13:00:00為數(shù)據(jù)周期A、13:00:01~14:00:00為數(shù)據(jù)周期B、14:00:01~15:00:00為數(shù)據(jù)周期C,其中所述數(shù)據(jù)周期的顯示位置為動(dòng)態(tài)曲線的X坐標(biāo)軸上的特定位置,例如數(shù)據(jù)周期A~C的顯示位置可以分別設(shè)定為X坐標(biāo)軸上13:00:00、14:00:00、15:00:00的位置。若當(dāng)前時(shí)間為13:15:16,那么13:00:00位置的數(shù)據(jù)點(diǎn)表示12:00:01~13:00:00內(nèi),新注冊(cè)的用戶數(shù)量,由于當(dāng)前時(shí)間已經(jīng)經(jīng)過(guò)13:00:00,那么該數(shù)據(jù)點(diǎn)已經(jīng)不做更新,而14:00:00位置的數(shù)據(jù)點(diǎn)表示13:00:01至前一更新時(shí)刻(即13:15:15)內(nèi)的新增用戶數(shù)量,該數(shù)據(jù)點(diǎn)即為前述的第一數(shù)據(jù)點(diǎn)。假設(shè)在13:00:01至13:15:15內(nèi),已經(jīng)有5000個(gè)新注冊(cè)的用戶,在13:15:16這一秒內(nèi)又有3個(gè)新注冊(cè)的用戶,那么第二數(shù)據(jù)點(diǎn)表示新注冊(cè)的用戶數(shù)量即為5003。由于13:15:15和13:15:16均屬于數(shù)據(jù)周期B,數(shù)據(jù)周期B的顯示位置處的第一數(shù)據(jù)點(diǎn)(14:00:00,5000)會(huì)被清除,同時(shí)顯示所述第二數(shù)據(jù)點(diǎn)(14:00:00,5003),由此完成了數(shù)據(jù)點(diǎn)的更新。
對(duì)于數(shù)據(jù)源中某一更新時(shí)刻的數(shù)據(jù),在根據(jù)該數(shù)據(jù)生成數(shù)據(jù)點(diǎn)時(shí),可以對(duì)數(shù)據(jù)進(jìn)行一定程度的數(shù)據(jù)處理,例如進(jìn)行篩選,以篩除一些可能不準(zhǔn)確的數(shù)據(jù)。如在上例的應(yīng)用場(chǎng)景中,可以對(duì)用戶所用設(shè)備的物理地址進(jìn)行過(guò)濾,例如用戶使用同一物理地址的終端注冊(cè)了5個(gè)賬號(hào),在生成數(shù)據(jù)點(diǎn)時(shí),可以對(duì)根據(jù)物理地址對(duì)該五個(gè)注冊(cè)信息進(jìn)行過(guò)濾,僅記錄一個(gè)作為新注冊(cè)的用戶,由此來(lái)保證數(shù)據(jù)點(diǎn)所表示的數(shù)據(jù)的準(zhǔn)確性。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于數(shù)據(jù)處理的描述僅為舉例,其他現(xiàn)有的或今后可 能出現(xiàn)的數(shù)據(jù)處理的方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
優(yōu)選地,所述第二裝置920的具體結(jié)構(gòu)如圖10所示,包括第二一模塊921和第二二模塊922。具體地,第二一模塊921根據(jù)預(yù)先配置的路徑由數(shù)據(jù)源中異步獲取當(dāng)前更新時(shí)刻的數(shù)據(jù);第二二模塊922根據(jù)所述當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)。
其中,在所述動(dòng)態(tài)曲線的圖表通過(guò)網(wǎng)頁(yè)顯示場(chǎng)景下,異步獲取可以采用AJAX(Asynchronous Javascript And XML,異步Javascript和XML技術(shù))。所述AJAX是一種用于創(chuàng)建快速動(dòng)態(tài)網(wǎng)頁(yè)的技術(shù),其通過(guò)在瀏覽器后臺(tái)與服務(wù)器進(jìn)行少量數(shù)據(jù)交換,可以在不重新加載整個(gè)網(wǎng)頁(yè)的情況下對(duì)網(wǎng)頁(yè)的某部分(即需要更新的數(shù)據(jù)點(diǎn))進(jìn)行更新,從而加快數(shù)據(jù)點(diǎn)更新的速度。
為了使得用戶能夠更加直觀查看數(shù)據(jù)點(diǎn)的更新情況,所述第一裝置910還用于:在獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行突出顯示。在此,突出顯示的方式包括但不限于:放大顯示、改變數(shù)據(jù)點(diǎn)顏色、改變數(shù)據(jù)點(diǎn)透明度、增加邊框等。以放大顯示顯示為例,第一裝置處理獲得的第一數(shù)據(jù)點(diǎn)3A的實(shí)際顯示效果如圖3(a)所示,當(dāng)在數(shù)據(jù)周期的顯示位置清除所述第一數(shù)據(jù)點(diǎn)3A并顯示所述第二數(shù)據(jù)點(diǎn)3B后,由于并未對(duì)所述第二數(shù)據(jù)點(diǎn)3B進(jìn)行突出顯示,第二數(shù)據(jù)點(diǎn)3B顯示為正常大小,如圖3(b)所示,在整個(gè)過(guò)程中通過(guò)放大以及正常顯示,數(shù)據(jù)點(diǎn)的變化過(guò)程呈現(xiàn)一閃爍的效果,使得數(shù)據(jù)點(diǎn)更新的動(dòng)態(tài)效果更加直觀,便于用戶查看。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于突出顯示的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的突出顯示的方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
由于在實(shí)際場(chǎng)景中也會(huì)出現(xiàn)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期的情形,因此本申請(qǐng)實(shí)施例還提供了一種優(yōu)選動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備的結(jié)構(gòu)如圖11所示,除如圖9所示第一裝置910、第二裝置920和第三裝置930之外,還包括第四裝置940。具體地,所述 第四裝置940在所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。在此,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,第一裝置910、第二裝置920和第三裝置930分別與圖9實(shí)施例中對(duì)應(yīng)裝置的內(nèi)容相同或基本相同,為簡(jiǎn)明起見(jiàn),故在此不再贅述,并以引用的方式包含于此。
該方法在根據(jù)數(shù)據(jù)源中當(dāng)前更新時(shí)刻的數(shù)據(jù)生成第二數(shù)據(jù)點(diǎn)之后,若確定所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期,則會(huì)在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn),即不對(duì)第一數(shù)據(jù)點(diǎn)進(jìn)行更新,而是在動(dòng)態(tài)曲線中新插入一個(gè)數(shù)據(jù)點(diǎn)。例如,當(dāng)前時(shí)間為14:00:01,在更新時(shí)刻獲取生成的第二數(shù)據(jù)點(diǎn)屬于數(shù)據(jù)周期C(14:00:01~15:00:00),而前一更新時(shí)刻生成的第一數(shù)據(jù)點(diǎn)則數(shù)據(jù)周期B(13:00:01~14:00:00),第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置為X坐標(biāo)軸上的15:00:00的位置,由此在當(dāng)前的更新時(shí)刻,14:00:00位置處的第一數(shù)據(jù)點(diǎn)不會(huì)被清除,而是直接在15:00:00位置處顯示第二數(shù)據(jù)點(diǎn)。在后續(xù)的更新時(shí)刻14:00:02至15:00:00,由于其生成的數(shù)據(jù)點(diǎn)均屬于同一數(shù)據(jù)周期C,則會(huì)執(zhí)行步驟S103所述的步驟,不再插入顯示新的數(shù)據(jù)點(diǎn),而是對(duì)原有的數(shù)據(jù)點(diǎn)進(jìn)行更新顯示;
若第一裝置910獲取所述數(shù)據(jù)點(diǎn)中前一更新時(shí)刻的第一數(shù)據(jù)點(diǎn)之后,對(duì)所述第一數(shù)據(jù)點(diǎn)進(jìn)行了突出顯示,相應(yīng)地,所述第四裝置940具體用于:當(dāng)所述第二數(shù)據(jù)點(diǎn)與所述第一數(shù)據(jù)點(diǎn)不屬于同一數(shù)據(jù)周期時(shí),取消對(duì)所述第一數(shù)據(jù)點(diǎn)的突出顯示,并在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)。仍以前述放大的突出顯示方式為例,上一個(gè)數(shù)據(jù)周期的第一數(shù)據(jù)在放大后隨即取消,形成閃爍效果,同時(shí)第二數(shù)據(jù)點(diǎn)在當(dāng)前的數(shù)據(jù)周期的顯示位置正常顯示,使得用戶能夠明確獲知已經(jīng)進(jìn)入下一數(shù)據(jù)周期,前一數(shù)據(jù)周期的數(shù)據(jù)不再更新。
進(jìn)一步地,本申請(qǐng)實(shí)施例還提供了一種更優(yōu)選的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備的結(jié)構(gòu)如圖12所示,除圖11示出的第一裝置910、第二裝置920、第三裝置930和第四裝置940之外,還包括第五裝置950。具體地,所述第五裝置950在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯 示所述第二數(shù)據(jù)點(diǎn)之前,判斷是否滿足清空條件,若滿足清空條件,則將所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置作為所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。在此,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,第一裝置910、第二裝置920、第三裝置930和第四裝置940分別與圖11實(shí)施例中對(duì)應(yīng)裝置的內(nèi)容相同或基本相同,為簡(jiǎn)明起見(jiàn),故在此不再贅述,并以引用的方式包含于此。
其中,所述清空條件可以根據(jù)實(shí)際應(yīng)用中的需求來(lái)設(shè)置,例如清空條件可以是當(dāng)前時(shí)間達(dá)到第二天的00:00:01,所述當(dāng)前顯示的動(dòng)態(tài)曲線的起始位置即為第一天的00:00:01的位置,即動(dòng)態(tài)曲線僅顯示一天的數(shù)據(jù),第二天開始時(shí)自動(dòng)清空曲線,重新開始繪制。清空的周期可以根據(jù)實(shí)際需求設(shè)置,除前述的24小時(shí)之外,也可以設(shè)置為4小時(shí)、12小時(shí)等等。
此外,清空條件還可以是用戶輸入的某些特定操作,例如查看歷史曲線數(shù)據(jù)的切換操作。在此種情形下,由于需要獲取歷史曲線數(shù)據(jù),前述的清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,具體包括:將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線。
由此,申請(qǐng)實(shí)施例還提供了另一種優(yōu)選的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備的結(jié)構(gòu)如圖13所示,除圖12示出的第一裝置910、第二裝置920、第三裝置930、第四裝置940和第五裝置950之外,還包括第六裝置960。具體地,所述第六裝置960包括第六一模塊961和第六二模塊962,其中第六一模塊961在將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線之后,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作清除當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線;第六二模塊962暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
在此,所述切換操作包括但不限于:操作點(diǎn)在特定位置上的點(diǎn)擊或滑動(dòng)操作、通過(guò)交互界面輸入的文本指令等。例如,可以在動(dòng)態(tài)曲線的圖表界面左側(cè)設(shè)置一個(gè)左箭頭的按鈕,當(dāng)用戶的操作點(diǎn)點(diǎn)擊該左箭頭即為切換操作,點(diǎn)擊一次即切換至前一日的動(dòng)態(tài)曲線;再如,切換操作為在動(dòng)態(tài)曲線的圖表區(qū)域內(nèi)向左滑動(dòng),滑動(dòng)一次即切換至前一日的動(dòng)態(tài)曲線或者根據(jù)滑動(dòng)的距離切換至不同的歷史動(dòng)態(tài)曲線;還如,在提供的交互界面中輸入 歷史動(dòng)態(tài)曲線的編號(hào),即可切換至對(duì)應(yīng)的歷史動(dòng)態(tài)曲線。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于切換操作的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的切換操作如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
其中,將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,包括但不限于以下方式:僅保存歷史動(dòng)態(tài)曲線中各個(gè)數(shù)據(jù)點(diǎn)的信息,或者保存各個(gè)數(shù)據(jù)點(diǎn)以及數(shù)據(jù)點(diǎn)之間的連線的信息等。若僅保存歷史動(dòng)態(tài)曲線中各個(gè)數(shù)據(jù)點(diǎn)的信息,則顯示歷史動(dòng)態(tài)曲線的具體步驟如下:首先,根據(jù)保存的信息生成各個(gè)數(shù)據(jù)點(diǎn)并顯示,然后根據(jù)數(shù)據(jù)點(diǎn)生成并顯示數(shù)據(jù)點(diǎn)之間的連線,以展示完整的動(dòng)態(tài)曲線。當(dāng)然,為了保證數(shù)據(jù)點(diǎn)與連線可以同步顯示,可以在根據(jù)保存的信息生成數(shù)據(jù)點(diǎn)以及連線之后,再同時(shí)顯示數(shù)據(jù)點(diǎn)及其連線。若同時(shí)保存各個(gè)數(shù)據(jù)點(diǎn)以及數(shù)據(jù)點(diǎn)之間的連線的信息等,則僅需要獲取這些信息,并根據(jù)這些信息生成并顯示即可。在此,本領(lǐng)域技術(shù)人員應(yīng)能理解上述關(guān)于保存歷史動(dòng)態(tài)曲線的描述僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的保存方式如可適用于本申請(qǐng),也應(yīng)包含在本申請(qǐng)保護(hù)范圍以內(nèi),并在此以引用方式包含于此。
由于獲取到切換操作后所顯示的曲線為歷史動(dòng)態(tài)曲線,在達(dá)到更新時(shí)刻后無(wú)需再對(duì)當(dāng)前時(shí)間的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)進(jìn)行更新,因此在顯示所述歷史動(dòng)態(tài)曲線之后,暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。在此,所述更新僅指對(duì)數(shù)據(jù)點(diǎn)在動(dòng)態(tài)曲線中顯示的更新,但是在數(shù)據(jù)源中不會(huì)停止數(shù)據(jù)記錄。仍以前述表示某一應(yīng)用程序在每個(gè)小時(shí)內(nèi)新注冊(cè)的用戶數(shù)量的應(yīng)用場(chǎng)景為例,假設(shè)歷史動(dòng)態(tài)曲線的數(shù)據(jù)以及數(shù)據(jù)源中新注冊(cè)用戶數(shù)量的數(shù)據(jù)保存于云端的服務(wù)器中,動(dòng)態(tài)曲線通過(guò)更新設(shè)備上的瀏覽器顯示,新注冊(cè)用戶數(shù)量的信息由安裝有應(yīng)用程序的移動(dòng)終端的發(fā)送給服務(wù)器并保存于數(shù)據(jù)源中。在當(dāng)前時(shí)間13:15:16時(shí),若更新設(shè)備獲取到用戶輸入的切換操作,更新設(shè)備會(huì)清除當(dāng)前顯示的動(dòng)態(tài)曲線,同時(shí)根據(jù)配置的路徑信息會(huì)由服務(wù)器獲取保存的歷史動(dòng)態(tài)曲線,并在瀏覽器中顯示該歷史動(dòng)態(tài)曲線。此時(shí),安裝有應(yīng)用程序的移動(dòng)終端仍然會(huì)向服務(wù)器發(fā)送新注冊(cè)用戶數(shù)量的信息,例如在13:00:01至13:15:15內(nèi),已經(jīng)有5000個(gè)新注冊(cè)的用戶, 在13:15:16至13:16:11的時(shí)間段內(nèi)新注冊(cè)的用戶又增加了20人,數(shù)據(jù)源仍然會(huì)接收這些信息并進(jìn)行保存,使得更新設(shè)備在需要更新時(shí)仍能夠得到最新的數(shù)據(jù),但是此時(shí)顯示的動(dòng)態(tài)曲線不會(huì)發(fā)生變化。
優(yōu)選地,所述第六裝置還包括第六三模塊963和第六四模塊964,其具體結(jié)構(gòu)如圖14所示。結(jié)合圖13,所述第六一模塊961在將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為歷史動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線之后,當(dāng)獲取切換操作時(shí),根據(jù)所述切換操作將所述當(dāng)前顯示的動(dòng)態(tài)曲線保存為第一動(dòng)態(tài)曲線,并清除所述當(dāng)前顯示的動(dòng)態(tài)曲線,顯示所述歷史動(dòng)態(tài)曲線。而第六三模塊963在暫停后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新之后,當(dāng)獲取到恢復(fù)操作時(shí),根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,顯示所述第一動(dòng)態(tài)曲線;第六四模塊964恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。
通過(guò)上述方式,若用戶在切換至歷史動(dòng)態(tài)曲線之后,想要繼續(xù)查看當(dāng)前時(shí)間的動(dòng)態(tài)曲線,可以通過(guò)恢復(fù)操作便捷地實(shí)現(xiàn)。與所述切換操作對(duì)應(yīng)地,所述恢復(fù)操作包括但不限于:操作點(diǎn)在特定位置上的點(diǎn)擊或滑動(dòng)操作、通過(guò)交互界面輸入的文本指令等。例如,點(diǎn)擊右箭頭的操作、在動(dòng)態(tài)曲線的圖表區(qū)域內(nèi)向右滑動(dòng)或者輸入第一動(dòng)態(tài)曲線的編號(hào)等。接上例,在當(dāng)前時(shí)間13:16:12時(shí),獲取到用戶輸入的恢復(fù)操作,更新設(shè)備根據(jù)所述恢復(fù)操作清除當(dāng)前顯示的所述歷史動(dòng)態(tài)曲線,并在瀏覽器中顯示所述第一動(dòng)態(tài)曲線,同時(shí)恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。由于在切換至歷史動(dòng)態(tài)曲線時(shí)(即13:15:16),第一動(dòng)態(tài)曲線顯示的數(shù)據(jù)點(diǎn)為13:15:15更新的數(shù)據(jù)點(diǎn)(14:00:00,5000),13:16:12時(shí)恢復(fù)后續(xù)更新時(shí)刻對(duì)所述數(shù)據(jù)點(diǎn)進(jìn)行的更新。若13:16:12內(nèi)又有1個(gè)新注冊(cè)的用戶,則該數(shù)據(jù)周期內(nèi)的數(shù)據(jù)點(diǎn)會(huì)更新為(14:00:00,5021)。
優(yōu)選地,本申請(qǐng)實(shí)施例還提供了一種更優(yōu)選的動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備的結(jié)構(gòu)如圖15所示,除圖11示出的第一裝置910、第二裝置920、第三裝置930和第四裝置940之外,還包括第七裝置970。具體地,所述第七裝置970在所述第二數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)周期的顯示位置顯示所述第二數(shù)據(jù)點(diǎn)之后,生成并顯示所述第一數(shù)據(jù)點(diǎn)與所述第二數(shù)據(jù)點(diǎn)之間 的連線。在此,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,第一裝置910、第二裝置920、第三裝置930和第四裝置940分別與圖10實(shí)施例中對(duì)應(yīng)裝置的內(nèi)容相同或基本相同,為簡(jiǎn)明起見(jiàn),故在此不再贅述,并以引用的方式包含于此。當(dāng)然,除第一裝置910、第二裝置920、第三裝置930和第四裝置940之外,該設(shè)備還可以包含前述的第五裝置和/或第六裝置。
具體地,當(dāng)時(shí)間達(dá)到14:00:01時(shí),由于進(jìn)入了下一個(gè)數(shù)據(jù)周期,有新的數(shù)據(jù)點(diǎn)插入到動(dòng)態(tài)曲線下一數(shù)據(jù)周期的顯示位置(即15:00:00處),此時(shí)會(huì)生成并顯示14:00:00位置處的數(shù)據(jù)點(diǎn)與15:00:00位置處的數(shù)據(jù)點(diǎn)之間的連線。此外,為了保證動(dòng)態(tài)曲線的實(shí)時(shí)性,兩個(gè)數(shù)據(jù)點(diǎn)之間的連線也會(huì)隨著數(shù)據(jù)點(diǎn)的更新而實(shí)時(shí)更新。例如,14:00:01時(shí),14:00:00位置處的數(shù)據(jù)點(diǎn)已不做更新,假設(shè)其數(shù)據(jù)點(diǎn)坐標(biāo)為(14:00:00,5350),15:00:00位置處的數(shù)據(jù)點(diǎn)坐標(biāo)為(15:00:00,5352)。當(dāng)時(shí)間又經(jīng)過(guò)一秒達(dá)到14:00:02時(shí),14:00:00位置處的數(shù)據(jù)點(diǎn)15:00:00位置處的數(shù)據(jù)點(diǎn)在該次更新后由(15:00:00,5352)更新為(15:00:00,5356),那么,(14:00:00,5350)與(15:00:00,5352)之間的連線會(huì)實(shí)時(shí)更新為(14:00:00,5350)與(15:00:00,5356)之間的連線。兩個(gè)數(shù)據(jù)點(diǎn)之間的連線可以僅表示數(shù)據(jù)點(diǎn)所表示的數(shù)據(jù)之間的變化趨勢(shì),而無(wú)需表示具體數(shù)據(jù),例如越接近兩個(gè)數(shù)據(jù)點(diǎn)的位置,該連線的切線越接近水平,越接近兩個(gè)數(shù)據(jù)點(diǎn)的中央位置,該連線的切線越接近垂直。
進(jìn)一步地,本申請(qǐng)還提供了另一種更優(yōu)動(dòng)態(tài)曲線數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備的結(jié)構(gòu)如圖16所示,除如圖9所示第一裝置910、第二裝置920和第三裝置930之外,還包括第八裝置980。具體地,所述第四裝置940檢測(cè)用戶操作點(diǎn)的位置,當(dāng)所述用戶操作點(diǎn)與所述數(shù)據(jù)點(diǎn)重合時(shí),在所述用戶操作點(diǎn)的位置顯示所述數(shù)據(jù)點(diǎn)對(duì)應(yīng)的數(shù)據(jù)。由此,使得用戶除了獲知數(shù)據(jù)的變化趨勢(shì)之外,還能夠準(zhǔn)確的獲取數(shù)據(jù)的準(zhǔn)確值。在此,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,第一裝置910、第二裝置920和第三裝置930分別與圖9實(shí)施例中對(duì)應(yīng)裝置的內(nèi)容相同或基本相同,為簡(jiǎn)明起見(jiàn),故在此不再贅述,并以引用的方式包含于此。當(dāng)然,除第一裝置910、第二裝置920和第三裝置930之外,該設(shè)備還可以包含前述的第四裝置、第五裝置、第六裝置 和第七裝置中的任意一個(gè)或多個(gè)。
圖17示出了本申請(qǐng)實(shí)施例還提供了一種動(dòng)態(tài)曲線的數(shù)據(jù)點(diǎn)更新設(shè)備,該設(shè)備包括第九裝置1710、第十裝置1720和第十一裝置1730。具體地,第九裝置1710獲取用于生成所述動(dòng)態(tài)曲線的實(shí)時(shí)組件;第十裝置1720向所述實(shí)時(shí)組件寫入配置信息;第十一裝置1730初始化所述實(shí)時(shí)組件,根據(jù)所述實(shí)時(shí)組件的配置信息控制前述的設(shè)備的運(yùn)行,從而完成數(shù)據(jù)點(diǎn)。
通過(guò)實(shí)時(shí)組件,僅需要寫入少量代碼,例如自定義的一些配置信息等,即可實(shí)現(xiàn)數(shù)據(jù)點(diǎn)更新的功能,由于大部分程序代碼采用了模塊化的形式,提高了代碼的可讀性和可維護(hù)性,降低了開發(fā)人員對(duì)編程知識(shí)的依賴程度,提高了開發(fā)效率。
其中,所述實(shí)時(shí)組件包括圖形展示單元以及功能調(diào)用單元。在實(shí)際應(yīng)用中,所述圖形展示單元以及功能調(diào)用單元可以是預(yù)先的程序代碼,例如采用HTML(Hyper Text Markup Language,超文本標(biāo)記語(yǔ)言)以及JavaScript(Java腳本語(yǔ)言),由于JavaScript可以插入到HTML頁(yè)面中,并且由任意的瀏覽器執(zhí)行,通用性較好,并且通過(guò)JavaScript編寫的Highcharts圖表庫(kù)能夠簡(jiǎn)單便捷的在HTML頁(yè)面中添加交互性的圖表,便于動(dòng)態(tài)曲線的繪制。其中,所述配置信息包括顯示參數(shù)信息和調(diào)用參數(shù)信息。在本實(shí)施例中,顯示參數(shù)信息包括但不限于用于調(diào)整圖表在顯示樣式的相關(guān)參數(shù),例如數(shù)據(jù)點(diǎn)的樣式、顏色、線條的顏色、樣式,圖表在頁(yè)面中的位置等,調(diào)用參數(shù)信息包括但不限于實(shí)現(xiàn)功能調(diào)用時(shí)需要使用到的參數(shù),例如數(shù)據(jù)源的相關(guān)信息、函數(shù)的控制參數(shù)等。
具體地,所述第十一裝置1730指示所述功能調(diào)用單元根據(jù)所述調(diào)用參數(shù)信息獲取生成初始數(shù)據(jù)點(diǎn)的數(shù)據(jù),并生成包含所述初始數(shù)據(jù)點(diǎn)的動(dòng)態(tài)曲線,指示所述圖形展示單元根據(jù)所述顯示參數(shù)信息生成顯示區(qū)域并在所述顯示區(qū)域內(nèi)顯示所述動(dòng)態(tài)曲線;并且指示所述圖形展示單元和功能調(diào)用單元控制前述任意一種設(shè)備進(jìn)行對(duì)所述動(dòng)態(tài)曲線中數(shù)據(jù)點(diǎn)的更新。
本實(shí)施例中HTML部分的程序代碼主要用于展現(xiàn)圖表的外在樣式,包括圖表的位置、大小等,JavaScript部分的程序代碼主要用于實(shí)現(xiàn)圖表的后臺(tái)功能,例如獲取數(shù)據(jù)、生成Highcharts圖形、調(diào)用函數(shù)等,圖6示出 了一張動(dòng)態(tài)曲線圖表的示意圖,該圖表對(duì)應(yīng)的動(dòng)態(tài)組件的程序代碼如下,其中HTML部分為:
在此,“chart1”為HTML DOM(HTML Document Object Model,HTML文檔對(duì)象模型)節(jié)點(diǎn),展現(xiàn)為圖6的整個(gè)區(qū)域,相當(dāng)于整個(gè)圖6的最外層的容器,圖中展現(xiàn)的其它內(nèi)容均包含在區(qū)域中。"realTimeArrow"為圖中內(nèi)部元素的類,用于指定圖6中的圖表顯示區(qū)域6A以及左右箭頭6B、6C的部分顯示效果;此外還分別單獨(dú)規(guī)定了左箭頭6B、右箭頭6C和圖表顯示區(qū)域6A的類,分別為"wdm-left leftArrow-on arrow-icon"、"wdm-right rightArrow arrow-icon"以及和"Chart_area",分別對(duì)圖表顯示區(qū)域6A、左箭頭6B、右箭頭6C的部分顯示效果進(jìn)行了單獨(dú)指定。"margin-right:25px;"表示圖表顯示區(qū)域6A的右邊距為25個(gè)像素。"J_Chart_area"為HTML DOM節(jié)點(diǎn),用于展現(xiàn)Highcharts圖形(即動(dòng)態(tài)曲線6D),其中HTML DOM用于提供接口,使得程序能夠動(dòng)態(tài)地訪問(wèn)和更新HTML頁(yè)面的內(nèi)容、結(jié)構(gòu)和樣式。在實(shí)際應(yīng)用中,"chart1"、"realTimeArrow"、"wdm-left leftArrow-on arrow-icon"、"wdm-right rightArrow arrow-icon"、"J_Chart_area"以及"chart-area"的無(wú)需在程序代碼的其它部分單獨(dú)定義,可以通過(guò)下述的JavaScript代碼自動(dòng)掃描并綁定。
而JavaScript調(diào)用部分的程序代碼為:
在此,在變量rtConfig中,type表示曲線類型,例如hour、min等,其中hour、min分別表示X坐標(biāo)軸上1小時(shí)或者5分鐘顯示一數(shù)據(jù)點(diǎn),即前述的數(shù)據(jù)周期為1小時(shí)或者5分鐘。
lineParams表示獲取曲線時(shí)需要傳遞到瀏覽器后臺(tái)的參數(shù)集合,其中參數(shù)集合內(nèi)的參數(shù)包括日期、版本信息等等。
pointParams表示獲取當(dāng)前更新時(shí)刻的數(shù)據(jù)點(diǎn)時(shí)需要傳遞到后臺(tái)的參數(shù)集合,其中參數(shù)集合內(nèi)的參數(shù)包括日期、版本信息等等。
lineDS表示獲取曲線的數(shù)據(jù)源。
pointDS表示當(dāng)前更新時(shí)刻的數(shù)據(jù)點(diǎn)的數(shù)據(jù)源。
clickLeftCallBack表示點(diǎn)擊左箭頭獲取數(shù)據(jù)后的回調(diào)函數(shù),這里指向函數(shù)leftOneCallBack,當(dāng)arrow為true時(shí)有效。
clickRightCallBack表示點(diǎn)擊右箭頭獲取數(shù)據(jù)后的回調(diào)函數(shù),這里指向函數(shù)rightOneCallBack,當(dāng)arrow為true時(shí)有效。
offLeftArrow表示點(diǎn)擊左箭頭時(shí)處理函數(shù),這里指向函數(shù)leftOne,當(dāng) arrow為true時(shí)有效。
offRightArrow表示點(diǎn)擊右箭頭時(shí)處理函數(shù),這里指向函數(shù)rightOne,當(dāng)arrow為true時(shí)有效。
arrow,可以是true或者false時(shí),當(dāng)true時(shí)表示前述左箭頭或右箭頭可以點(diǎn)擊,并調(diào)用相關(guān)函數(shù)。
向所述實(shí)時(shí)組件寫入的配置信息(config)包括但不限于曲線類型type、曲線的顏色、線寬和數(shù)據(jù)點(diǎn)的顏色、大小、前述的lineParams、pointParams、lineDS、pointDS、JavaScript的相關(guān)處理函數(shù)、坐標(biāo)軸的顏色、點(diǎn)形狀等信息。
圖7示出了所述實(shí)時(shí)組件的初始化流程,包括以下步驟:
步驟S701,根據(jù)實(shí)時(shí)組件的config中的type加載對(duì)應(yīng)的曲線類型配置(profile),例如加載的type為hour。config是實(shí)時(shí)組件的配置,指定了相關(guān)的配置信息,用于在初始化實(shí)時(shí)組件時(shí)使用。profile是實(shí)時(shí)組件的具體實(shí)例,在每次初始化時(shí)將config中的相關(guān)屬性信息寫入profile。
步驟S702,用config中的相關(guān)屬性覆蓋當(dāng)前profile中的對(duì)應(yīng)屬性,其中相關(guān)屬性可以包括曲線的顏色、線寬和數(shù)據(jù)點(diǎn)的顏色、大小、等。
步驟S703,調(diào)用initLine方法初始化數(shù)據(jù)。其中,所述initLine方法包括:如果當(dāng)前的HTML頁(yè)面中已經(jīng)存在圖表(例如前述方法提及的第一動(dòng)態(tài)曲線、歷史動(dòng)態(tài)曲線等),則會(huì)清空?qǐng)D表,然后根據(jù)當(dāng)前實(shí)例的相關(guān)屬性(如坐標(biāo)軸的配置信息,包括顏色、點(diǎn)形狀),初始化圖表對(duì)象,再根據(jù)config中的lineDS、lineParams異步獲取對(duì)應(yīng)的曲線數(shù)據(jù),然后根據(jù)數(shù)據(jù)繪制曲線。在實(shí)際應(yīng)用中,當(dāng)用戶點(diǎn)擊左箭頭獲取前一天的歷史動(dòng)態(tài)曲線時(shí),由于目前所顯示的時(shí)當(dāng)日的動(dòng)態(tài)曲線,此時(shí)會(huì)清空當(dāng)日的動(dòng)態(tài)曲線,獲取歷史動(dòng)態(tài)曲線的數(shù)據(jù)并顯示所述歷史動(dòng)態(tài)曲線。
步驟S704,調(diào)用當(dāng)前openTimer方法更新數(shù)據(jù)點(diǎn)。所述openTimer方法的觸發(fā)通過(guò)定時(shí)器實(shí)現(xiàn),將定時(shí)器邏輯的觸發(fā)間隔設(shè)置為1秒,每次觸發(fā)時(shí):判斷定時(shí)器是否為空,如果定時(shí)器不為空,則清空定時(shí)器,同時(shí)新建定時(shí)器,執(zhí)行一次圖1或圖4所示的數(shù)據(jù)點(diǎn)更新的處理步驟。
步驟S705,確定是否開啟箭頭,即使得左右箭頭是否可點(diǎn)擊,如果開 啟,則執(zhí)行步驟S706,如果不開啟,則完成實(shí)時(shí)組件的初始化。
步驟S706,為箭頭添加監(jiān)聽(tīng)程序,使得點(diǎn)擊點(diǎn)頭時(shí)能夠觸發(fā)相關(guān)處理邏輯。
圖8示出了箭頭的監(jiān)聽(tīng)程序的監(jiān)聽(tīng)流程,包括以下步驟:
步驟S801,獲取到點(diǎn)擊操作;
步驟S802,判斷箭頭是否處于不可點(diǎn)擊的狀態(tài),若為是,則結(jié)束監(jiān)聽(tīng)流程;若為否,執(zhí)行步驟S803;
步驟S803,調(diào)用函數(shù)clickLeftCallBack或者clickRightCallBack,進(jìn)行處理。在本申請(qǐng)實(shí)施例中,clickLeftCallBack函數(shù)可以實(shí)現(xiàn)前述切換操作的功能,即用于向前翻頁(yè),顯示歷史動(dòng)態(tài)曲線,而clickRightCallBack則可以實(shí)現(xiàn)恢復(fù)操作的功能,向后翻頁(yè)直至返回顯示當(dāng)日的動(dòng)態(tài)曲線。
步驟S804,調(diào)用函數(shù)offLeftArrow或者offRightArrow,進(jìn)行處理。若當(dāng)前arrow的值為true,則調(diào)用上述兩個(gè)函數(shù)的作用為點(diǎn)擊左(或右)箭頭后將其置為不可點(diǎn)擊的狀態(tài),若arrow的值為false,點(diǎn)擊左(或右)箭頭后將其置為可點(diǎn)擊的狀態(tài)。
步驟S805,調(diào)用initLine方法初始化數(shù)據(jù)。由于在使用clickLeftCallBack或者clickRightCallBack函數(shù)后,需要清除并顯示曲線,通過(guò)initLine方法即可實(shí)現(xiàn)曲線的切換。
步驟S806,若點(diǎn)擊的是左箭頭,則調(diào)用closeTimer方法,若點(diǎn)擊的是右箭頭,則需要判斷offRightArrow函數(shù)處理后,右箭頭還是否可點(diǎn)擊,若可點(diǎn)擊,則調(diào)用closeTimer方法,若不可點(diǎn)擊,則調(diào)用openTimer方法。其中,openTimer方法用于更新數(shù)據(jù)點(diǎn),在實(shí)時(shí)組件的初始化流程中已經(jīng)說(shuō)明,此處不再贅述,closeTimer方法則用于清除定時(shí)器,即停止更新數(shù)據(jù)點(diǎn),以減少數(shù)據(jù)處理量,降低處理負(fù)荷。
綜上所述,在本申請(qǐng)?zhí)峁┑募夹g(shù)方案能夠獲取曲線上最近一個(gè)更新時(shí)刻的數(shù)據(jù)點(diǎn),然后與當(dāng)前更新時(shí)刻生成的數(shù)據(jù)點(diǎn)進(jìn)行比較,若屬于同一數(shù)據(jù)周期,則會(huì)將新生成的數(shù)據(jù)點(diǎn)替換原來(lái)的數(shù)據(jù)點(diǎn),從而實(shí)現(xiàn)數(shù)據(jù)點(diǎn)在一個(gè)數(shù)據(jù)周期內(nèi)不斷進(jìn)行更新顯示,可以更加直觀的展現(xiàn)例如某一數(shù)據(jù)在一定周期內(nèi)的累積量等信息。此外,本申請(qǐng)?zhí)峁┑牧硪环桨钢?,通過(guò)實(shí)時(shí)組 件僅需要寫入少量代碼,例如自定義的一些配置信息等,即可實(shí)現(xiàn)數(shù)據(jù)點(diǎn)更新的功能,由于大部分程序代碼采用了模塊化的形式,提高了代碼的可讀性和可維護(hù)性,降低了開發(fā)人員對(duì)編程知識(shí)的依賴程度,提高了開發(fā)效率。
需要注意的是,本申請(qǐng)可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,可采用專用集成電路(ASIC)、通用目的計(jì)算機(jī)或任何其他類似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本申請(qǐng)的軟件程序可以通過(guò)處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本申請(qǐng)的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本申請(qǐng)的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。
另外,本申請(qǐng)的一部分可被應(yīng)用為計(jì)算機(jī)程序產(chǎn)品,例如計(jì)算機(jī)程序指令,當(dāng)其被計(jì)算機(jī)執(zhí)行時(shí),通過(guò)該計(jì)算機(jī)的操作,可以調(diào)用或提供根據(jù)本申請(qǐng)的方法和/或技術(shù)方案。而調(diào)用本申請(qǐng)的方法的程序指令,可能被存儲(chǔ)在固定的或可移動(dòng)的記錄介質(zhì)中,和/或通過(guò)廣播或其他信號(hào)承載媒體中的數(shù)據(jù)流而被傳輸,和/或被存儲(chǔ)在根據(jù)所述程序指令運(yùn)行的計(jì)算機(jī)設(shè)備的工作存儲(chǔ)器中。在此,根據(jù)本申請(qǐng)的一個(gè)實(shí)施例包括一個(gè)裝置,該裝置包括用于存儲(chǔ)計(jì)算機(jī)程序指令的存儲(chǔ)器和用于執(zhí)行程序指令的處理器,其中,當(dāng)該計(jì)算機(jī)程序指令被該處理器執(zhí)行時(shí),觸發(fā)該裝置運(yùn)行基于前述根據(jù)本申請(qǐng)的多個(gè)實(shí)施例的方法和/或技術(shù)方案。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本申請(qǐng)不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本申請(qǐng)的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本申請(qǐng)。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本申請(qǐng)的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本申請(qǐng)內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。裝置權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過(guò)軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定 的順序。