本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說是一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法。
背景技術(shù):
在軟件系統(tǒng)中,用戶通過用戶界面向系統(tǒng)輸入數(shù)據(jù)。如果用戶向系統(tǒng)輸入了數(shù)據(jù),而數(shù)據(jù)未能夠正常的保存,那么用戶不得不重新輸入數(shù)據(jù)。這種場景通常由于用戶疏忽或者操作失誤、系統(tǒng)本身發(fā)生異常,以及系統(tǒng)環(huán)境異常等引起。
上述問題在現(xiàn)有技術(shù)的C/S或者B/S結(jié)構(gòu)的系統(tǒng)中較為常見,其中C/S 結(jié)構(gòu)是大家熟知的客戶機(jī)和服務(wù)器結(jié)構(gòu),它是軟件系統(tǒng)體系結(jié)構(gòu),通過它可以充分利用兩端硬件環(huán)境的優(yōu)勢,將任務(wù)合理分配到Client端和Server端來實(shí)現(xiàn),降低了系統(tǒng)的通訊開銷。B/S結(jié)構(gòu)是應(yīng)WEB技術(shù)的飛速發(fā)展而從傳統(tǒng)的C/S結(jié)構(gòu)發(fā)展而來,并且一舉成為當(dāng)今主要的網(wǎng)絡(luò)結(jié)構(gòu),目前主要的網(wǎng)站,尤其是商務(wù)網(wǎng)站都是基于B/S結(jié)構(gòu)建立的。
基于此,現(xiàn)提供一種有效解決上述問題、用戶錄入數(shù)據(jù)備份與恢復(fù)方法,基于C/S或者B/S結(jié)構(gòu)的系統(tǒng),這種方法能夠?qū)⒂脩粢呀?jīng)錄入到系統(tǒng)客戶端但是沒有能夠保存到系統(tǒng)服務(wù)端的數(shù)據(jù)自動(dòng)備份,并且允許用戶便捷地恢復(fù)數(shù)據(jù),同時(shí)最大程度的減少系統(tǒng)的數(shù)據(jù)冗余。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對以上不足之處,提供一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法。
一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法,基于包括客戶端和服務(wù)端的C/S或者B/S結(jié)構(gòu)的系統(tǒng),其實(shí)現(xiàn)過程為,首先將用戶輸入到系統(tǒng)但沒有保存到服務(wù)端的數(shù)據(jù)自動(dòng)備份,在用戶需要時(shí)恢復(fù)數(shù)據(jù),恢復(fù)到原消息狀態(tài)。
其具體實(shí)現(xiàn)過程為:
首先系統(tǒng)自動(dòng)備份用戶錄入的數(shù)據(jù);
暫存或刪除備份的數(shù)據(jù);
在用戶需要恢復(fù)數(shù)據(jù)時(shí),查詢備份;
加載備份數(shù)據(jù)到用戶界面;
最后更新數(shù)據(jù)的狀態(tài)相關(guān)部分。
所述用戶輸入到系統(tǒng)但沒保存的信息包括用戶界面持有的數(shù)據(jù)和附加信息,其中用戶界面持有的數(shù)據(jù)包括表單的數(shù)據(jù)格式和用戶錄入的數(shù)據(jù);附加信息包括用戶標(biāo)識(shí)、用戶界面標(biāo)識(shí)和表單狀態(tài),表單狀態(tài)包括新增狀態(tài)和編輯狀態(tài)。
數(shù)據(jù)自動(dòng)備份是指將上述數(shù)據(jù)保存在客戶端的存儲(chǔ)介質(zhì)中,然后該備份數(shù)據(jù)根據(jù)客戶端系統(tǒng)的狀態(tài),決定是否保存到服務(wù)端,否則將客戶端備份數(shù)據(jù)刪除。
自動(dòng)備份的數(shù)據(jù)暫存在客戶端的存儲(chǔ)介質(zhì)中,并根據(jù)以下兩種情況將數(shù)據(jù)刪除:當(dāng)系統(tǒng)感知到用戶錄入數(shù)據(jù)已經(jīng)成功保存到服務(wù)端時(shí),系統(tǒng)刪除用戶錄入數(shù)據(jù)在客戶端的備份;當(dāng)系統(tǒng)感知到用戶主動(dòng)放棄所錄入的數(shù)據(jù)時(shí),系統(tǒng)刪除用戶錄入數(shù)據(jù)在客戶端的備份。
所述客戶端系統(tǒng)狀態(tài)是指:
系統(tǒng)客戶端退出,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端;
系統(tǒng)自身故障,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端;
系統(tǒng)環(huán)境異常,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端。
所述恢復(fù)數(shù)據(jù)的具體過程為,
首先從客戶端的備份數(shù)據(jù)集合中查詢與用戶界面關(guān)聯(lián)的數(shù)據(jù);
然后將客戶端的備份數(shù)據(jù)恢復(fù)到原用戶界面,并還原用戶界面狀態(tài);
最后更新用戶界面持有的部分?jǐn)?shù)據(jù),保持?jǐn)?shù)據(jù)一致性。
查詢與用戶界面關(guān)聯(lián)的數(shù)據(jù)基于以下規(guī)則進(jìn)行:
匹配備份數(shù)據(jù)的用戶標(biāo)識(shí)與目標(biāo)用戶標(biāo)識(shí);
匹配備份數(shù)據(jù)的用戶界面標(biāo)識(shí)與目標(biāo)用戶界面標(biāo)識(shí)。
所述用戶界面狀態(tài)包括表單狀態(tài)和數(shù)據(jù)狀態(tài),其中表單狀態(tài)包括新增狀態(tài)和編輯狀態(tài),數(shù)據(jù)狀態(tài)包括未修改狀態(tài)和已修改狀態(tài)。
更新用戶界面持有的部分?jǐn)?shù)據(jù)的過程為:
更新用戶錄入數(shù)據(jù)中與日期時(shí)間相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與用戶狀態(tài)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與系統(tǒng)狀態(tài)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與系統(tǒng)數(shù)據(jù)存儲(chǔ)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)格式與當(dāng)前表單格式不一致的部分。
本發(fā)明的一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法和現(xiàn)有技術(shù)相比,具有以下有益效果:
本發(fā)明的一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法,通過將用戶輸入到系統(tǒng)但是沒有保存到服務(wù)端的數(shù)據(jù)自動(dòng)備份,在用戶需要時(shí)恢復(fù)數(shù)據(jù),在用戶疏忽、系統(tǒng)故障或者環(huán)境異常的情況下,節(jié)約用戶重復(fù)錄入工作,避免用戶數(shù)據(jù)的丟失,最大程度的減少數(shù)據(jù)冗余,數(shù)據(jù)恢復(fù)過程快,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發(fā)明的實(shí)現(xiàn)流程圖。
附圖2為本發(fā)明實(shí)施例的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明作進(jìn)一步說明。
如附圖1所示,一種用戶錄入數(shù)據(jù)備份與恢復(fù)方法,適用于基于B/S或C/S系統(tǒng)的表單錄入功能的實(shí)現(xiàn)。本發(fā)明所實(shí)現(xiàn)的方法,將用戶輸入到系統(tǒng)但是沒有保存到服務(wù)端的數(shù)據(jù)自動(dòng)備份,在用戶需要時(shí)恢復(fù)數(shù)據(jù)。在用戶疏忽、系統(tǒng)故障或者環(huán)境異常的情況下,本發(fā)明能夠節(jié)約用戶重復(fù)錄入工作,避免用戶數(shù)據(jù)的丟失。
基于包括客戶端和服務(wù)端的C/S或者B/S結(jié)構(gòu)的系統(tǒng),其實(shí)現(xiàn)過程為,首先將用戶輸入到系統(tǒng)但沒有保存到服務(wù)端的數(shù)據(jù)自動(dòng)備份,在用戶需要時(shí)恢復(fù)數(shù)據(jù),恢復(fù)到原消息狀態(tài)。
其具體實(shí)現(xiàn)過程為:
首先系統(tǒng)自動(dòng)備份用戶錄入的數(shù)據(jù);
暫存或刪除備份的數(shù)據(jù);
在用戶需要恢復(fù)數(shù)據(jù)時(shí),查詢備份;
加載備份數(shù)據(jù)到用戶界面;
最后更新數(shù)據(jù)的狀態(tài)相關(guān)部分。
所述用戶輸入到系統(tǒng)但沒保存的信息包括用戶界面持有的數(shù)據(jù)和附加信息,其中用戶界面持有的數(shù)據(jù)包括表單的數(shù)據(jù)格式和用戶錄入的數(shù)據(jù);附加信息包括用戶標(biāo)識(shí)、用戶界面標(biāo)識(shí)和表單狀態(tài),表單狀態(tài)包括新增狀態(tài)和編輯狀態(tài)。
數(shù)據(jù)自動(dòng)備份是指將上述數(shù)據(jù)保存在客戶端的存儲(chǔ)介質(zhì)中,然后該備份數(shù)據(jù)根據(jù)客戶端系統(tǒng)的狀態(tài),決定是否保存到服務(wù)端,否則將客戶端備份數(shù)據(jù)刪除。
自動(dòng)備份的數(shù)據(jù)暫存在客戶端的存儲(chǔ)介質(zhì)中,并根據(jù)以下兩種情況將數(shù)據(jù)刪除:當(dāng)系統(tǒng)感知到用戶錄入數(shù)據(jù)已經(jīng)成功保存到服務(wù)端時(shí),系統(tǒng)刪除用戶錄入數(shù)據(jù)在客戶端的備份;當(dāng)系統(tǒng)感知到用戶主動(dòng)放棄所錄入的數(shù)據(jù)時(shí),系統(tǒng)刪除用戶錄入數(shù)據(jù)在客戶端的備份。
所述客戶端系統(tǒng)狀態(tài)是指:
系統(tǒng)客戶端退出,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端;
系統(tǒng)自身故障,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端;
系統(tǒng)環(huán)境異常,導(dǎo)致數(shù)據(jù)無法保存到服務(wù)端。
所述恢復(fù)數(shù)據(jù)的具體過程為,
首先從客戶端的備份數(shù)據(jù)集合中查詢與用戶界面關(guān)聯(lián)的數(shù)據(jù);
然后將客戶端的備份數(shù)據(jù)恢復(fù)到原用戶界面,并還原用戶界面狀態(tài);
最后更新用戶界面持有的部分?jǐn)?shù)據(jù),保持?jǐn)?shù)據(jù)一致性。
查詢與用戶界面關(guān)聯(lián)的數(shù)據(jù)基于以下規(guī)則進(jìn)行:
匹配備份數(shù)據(jù)的用戶標(biāo)識(shí)與目標(biāo)用戶標(biāo)識(shí);
匹配備份數(shù)據(jù)的用戶界面標(biāo)識(shí)與目標(biāo)用戶界面標(biāo)識(shí)。
所述用戶界面狀態(tài)包括表單狀態(tài)和數(shù)據(jù)狀態(tài),其中表單狀態(tài)包括新增狀態(tài)和編輯狀態(tài),數(shù)據(jù)狀態(tài)包括未修改狀態(tài)和已修改狀態(tài)。
更新用戶界面持有的部分?jǐn)?shù)據(jù)的過程為:
更新用戶錄入數(shù)據(jù)中與日期時(shí)間相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與用戶狀態(tài)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與系統(tǒng)狀態(tài)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)中與系統(tǒng)數(shù)據(jù)存儲(chǔ)相關(guān)的部分;
更新用戶錄入數(shù)據(jù)格式與當(dāng)前表單格式不一致的部分。
如附圖2所示,下面以基于B/S結(jié)構(gòu)的系統(tǒng)實(shí)施實(shí)例:
步驟1:用戶登陸系統(tǒng),打開“我的報(bào)銷單”功能,用戶選擇新建一個(gè)報(bào)銷單,系統(tǒng)新建一個(gè)單據(jù),系統(tǒng)自動(dòng)生成單據(jù)的創(chuàng)建時(shí)間和單據(jù)編號(hào),用戶錄入單據(jù)主體信息。
進(jìn)一步的,在用戶輸入過程中,系統(tǒng)每隔5秒鐘檢測當(dāng)前單據(jù)的數(shù)據(jù)狀態(tài),如果單據(jù)的數(shù)據(jù)狀態(tài)為已修改,系統(tǒng)將用戶信息、界面信息、表單狀態(tài)、表單數(shù)據(jù)格式和用戶已錄入數(shù)據(jù)保存到瀏覽器本地存儲(chǔ)。
步驟2:包括以下場景
場景一:用戶選擇保存單據(jù),系統(tǒng)保存單據(jù)成功,用戶登出系統(tǒng)
場景二:用戶關(guān)閉單據(jù)界面,系統(tǒng)提示用戶保存單據(jù),用戶選擇不保存數(shù)據(jù),用戶登出系統(tǒng)
場景三:用戶沒有選擇保存數(shù)據(jù),直接關(guān)機(jī)
場景四:用戶選擇保存單據(jù),系統(tǒng)服務(wù)端異常,系統(tǒng)保存單據(jù)失敗
場景五:用戶選擇保存單據(jù),用戶的客戶機(jī)與服務(wù)器之間網(wǎng)絡(luò)異常,
對于場景一和場景二,當(dāng)系統(tǒng)感知到用戶的上述操作行為時(shí),系統(tǒng)刪除用戶錄入數(shù)據(jù)在客戶端的備份;
對于場景三、場景四和場景五,系統(tǒng)不采取動(dòng)作,所以用戶錄入數(shù)據(jù)在客戶端的備份將保存到數(shù)據(jù)恢復(fù)步驟,即步驟3。
步驟3:用戶再次登陸系統(tǒng),打開“我的報(bào)銷單”功能,系統(tǒng)從客戶端備份數(shù)據(jù)集合中查詢與當(dāng)前用戶標(biāo)識(shí)和“我的報(bào)銷單”用戶界面標(biāo)識(shí)相匹配的條目,如果客戶端備份數(shù)據(jù)集合有正確匹配的條目,系統(tǒng)將查詢結(jié)果以列表形式在用戶界面窗口右下角提示給用戶。
步驟4:用戶選擇一個(gè)備份數(shù)據(jù)條目并選擇“恢復(fù)”選項(xiàng),系統(tǒng)創(chuàng)建一個(gè)單據(jù)。
進(jìn)一步的,系統(tǒng)將用戶所選擇條目在客戶端的備份數(shù)據(jù)填充到單據(jù)的表單中,
進(jìn)一步的,系統(tǒng)將用戶界面的表單狀態(tài)設(shè)置為備份數(shù)據(jù)所記錄的表單狀態(tài),
進(jìn)一步的,系統(tǒng)將用戶界面的數(shù)據(jù)狀態(tài)設(shè)置為已修改狀態(tài)。
步驟5:包括以下場景
場景1:系統(tǒng)檢測到表單狀態(tài)為新增狀態(tài),
進(jìn)一步的,系統(tǒng)檢測單據(jù)數(shù)據(jù)中與日期時(shí)間相關(guān)的字段,將單據(jù)創(chuàng)建日期更新為當(dāng)前操作系統(tǒng)時(shí)間;
進(jìn)一步的,系統(tǒng)檢測單據(jù)數(shù)據(jù)中與系統(tǒng)數(shù)據(jù)存儲(chǔ)相關(guān)的字段,按照編號(hào)規(guī)則重新生成單據(jù)的編號(hào)。
場景2:系統(tǒng)檢測到表單狀態(tài)為編輯狀態(tài),系統(tǒng)不采取動(dòng)作。
通過上面具體實(shí)施方式,所述技術(shù)領(lǐng)域的技術(shù)人員可容易的實(shí)現(xiàn)本發(fā)明。但是應(yīng)當(dāng)理解,本發(fā)明并不限于上述的具體實(shí)施方式。在公開的實(shí)施方式的基礎(chǔ)上,所述技術(shù)領(lǐng)域的技術(shù)人員可任意組合不同的技術(shù)特征,從而實(shí)現(xiàn)不同的技術(shù)方案。
除說明書所述的技術(shù)特征外,均為本專業(yè)技術(shù)人員的已知技術(shù)。