一種保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的方法和裝置。
【背景技術(shù)】
[0002]從事網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā)時(shí),我們會(huì)發(fā)現(xiàn)每個(gè)頁(yè)面的設(shè)計(jì)開(kāi)發(fā)都要實(shí)現(xiàn)大量的DOM(Document Object Model,文檔對(duì)象模型)操作,通常我們?cè)谠O(shè)計(jì)的過(guò)程中都會(huì)針對(duì)相應(yīng)的DOM操作進(jìn)行對(duì)應(yīng)的事件觸發(fā)機(jī)制進(jìn)行編碼響應(yīng)設(shè)計(jì)。
[0003]當(dāng)外部用戶視圖數(shù)據(jù)發(fā)生變化時(shí)候,根據(jù)變化內(nèi)容,需要開(kāi)發(fā)者手動(dòng)編寫(xiě)對(duì)應(yīng)的觸發(fā)方案,控制數(shù)據(jù)模塊對(duì)用戶視圖數(shù)據(jù)集的變化做出響應(yīng),通過(guò)這些觸發(fā)方案觸發(fā)內(nèi)部數(shù)據(jù)模型內(nèi)數(shù)據(jù)進(jìn)行更新,同理,當(dāng)業(yè)務(wù)邏輯觸發(fā)某些數(shù)據(jù)模型的數(shù)據(jù)發(fā)生變化時(shí),也由開(kāi)發(fā)者手動(dòng)編寫(xiě)對(duì)應(yīng)的觸發(fā)方案來(lái)實(shí)現(xiàn)外部用戶視圖的更新,以保持外部用戶視圖數(shù)據(jù)和內(nèi)部數(shù)據(jù)模型數(shù)據(jù)的一致性。
[0004]如此,一款頁(yè)面應(yīng)用開(kāi)發(fā)下來(lái),需要開(kāi)發(fā)者實(shí)時(shí)對(duì)用戶視圖數(shù)據(jù)和數(shù)據(jù)模型數(shù)據(jù)是否發(fā)生改變進(jìn)行監(jiān)測(cè),并在發(fā)現(xiàn)用戶視圖數(shù)據(jù)和/或數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí)編寫(xiě)大量的編碼,工作量較大,耗費(fèi)開(kāi)發(fā)者較多的時(shí)間和精力,且由于開(kāi)發(fā)者反應(yīng)速度有限,當(dāng)無(wú)論是發(fā)現(xiàn)用戶視圖數(shù)據(jù)還是數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí),均需要開(kāi)發(fā)者在反映過(guò)后通過(guò)編寫(xiě)代碼來(lái)使兩者中的另一者發(fā)生改變,兩者中另一者無(wú)法在發(fā)現(xiàn)用戶視圖數(shù)據(jù)或數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí)立即做出相應(yīng)的改變,同時(shí),由于每個(gè)響應(yīng)觸發(fā)事件的設(shè)計(jì)模式均十分復(fù)雜,一旦開(kāi)發(fā)者編寫(xiě)的觸發(fā)編碼發(fā)生錯(cuò)誤,未能對(duì)所有的事件(尤其是一些突發(fā)事件,或者小概率事件)進(jìn)行正確的編碼響應(yīng),系統(tǒng)無(wú)法做出正確的處理,容易導(dǎo)致應(yīng)用操作失敗,嚴(yán)重時(shí)甚至可能導(dǎo)致整個(gè)系統(tǒng)的崩潰,存在較高的安全隱患。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實(shí)施例提供一種保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的方法和裝置,以解決現(xiàn)有技術(shù)中需要開(kāi)發(fā)者實(shí)時(shí)對(duì)用戶視圖數(shù)據(jù)和數(shù)據(jù)模型數(shù)據(jù)是否發(fā)生改變進(jìn)行監(jiān)測(cè),并在發(fā)現(xiàn)用戶視圖數(shù)據(jù)和/或數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí)編寫(xiě)大量的編碼,工作量較大,耗費(fèi)開(kāi)發(fā)者較多的時(shí)間和精力,兩者中另一者無(wú)法在發(fā)現(xiàn)用戶視圖數(shù)據(jù)或數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí)立即做出相應(yīng)的改變,一旦開(kāi)發(fā)者編寫(xiě)的觸發(fā)編碼發(fā)生錯(cuò)誤,未能對(duì)所有的事件進(jìn)行正確的編碼響應(yīng),系統(tǒng)無(wú)法做出正確的處理,容易導(dǎo)致應(yīng)用操作失敗,嚴(yán)重時(shí)甚至可能導(dǎo)致整個(gè)系統(tǒng)的崩潰,存在較高的安全隱患的問(wèn)題。
[0006]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例提供如下技術(shù)方案:
[0007]—種保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的方法,包括:
[0008]每隔預(yù)設(shè)時(shí)間間隔同時(shí)對(duì)用戶視圖數(shù)據(jù)和數(shù)據(jù)模型數(shù)據(jù)進(jìn)行監(jiān)測(cè),其中,所述用戶視圖數(shù)據(jù)與所述數(shù)據(jù)模型數(shù)據(jù)間具有數(shù)據(jù)依賴關(guān)系;
[0009]若監(jiān)測(cè)到所述用戶視圖數(shù)據(jù)發(fā)生改變,則確定發(fā)生改變的用戶視圖數(shù)據(jù)中發(fā)生改變的第一改變數(shù)據(jù)和所述第一改變數(shù)據(jù)的數(shù)值,并根據(jù)所述數(shù)據(jù)依賴關(guān)系在所述數(shù)據(jù)模型數(shù)據(jù)中查找與所述第一改變數(shù)據(jù)相依賴的第一依賴數(shù)據(jù),將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值;
[0010]若監(jiān)測(cè)到所述數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變,則確定發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)中發(fā)生改變的第二改變數(shù)據(jù)和所述第二改變數(shù)據(jù)的數(shù)值,并根據(jù)所述數(shù)據(jù)依賴關(guān)系在所述用戶視圖數(shù)據(jù)中查找與所述第二改變數(shù)據(jù)相依賴的第二依賴數(shù)據(jù),將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值;
[0011 ] 更新所述數(shù)據(jù)依賴關(guān)系。
[0012]其中,所述每隔預(yù)設(shè)時(shí)間間隔對(duì)用戶視圖數(shù)據(jù)和數(shù)據(jù)模型數(shù)據(jù)進(jìn)行監(jiān)測(cè)包括:
[0013]在獲取上一用戶視圖數(shù)據(jù)的預(yù)設(shè)時(shí)間后獲取當(dāng)前用戶視圖數(shù)據(jù),判斷所述當(dāng)前用戶視圖數(shù)據(jù)與所述上一用戶視圖數(shù)據(jù)是否相同,若不相同,則確定監(jiān)測(cè)的用戶視圖數(shù)據(jù)發(fā)生改變,若相同,則確定監(jiān)測(cè)的用戶視圖數(shù)據(jù)沒(méi)有發(fā)生改變,在所述預(yù)設(shè)時(shí)間間隔后獲取下一用戶視圖數(shù)據(jù);
[0014]在獲取上一數(shù)據(jù)模型數(shù)據(jù)的預(yù)設(shè)時(shí)間后獲取當(dāng)前數(shù)據(jù)模型數(shù)據(jù),判斷所述當(dāng)前數(shù)據(jù)模型數(shù)據(jù)與所述上一數(shù)據(jù)模型數(shù)據(jù)是否相同,若不相同,則確定監(jiān)測(cè)的數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變,若相同,則確定監(jiān)測(cè)的數(shù)據(jù)模型數(shù)據(jù)沒(méi)有發(fā)生改變,在所述預(yù)設(shè)時(shí)間間隔后獲取下一數(shù)據(jù)模型數(shù)據(jù)。
[0015]其中,所述將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值后還包括:
[0016]判斷所述發(fā)生改變的用戶視圖數(shù)據(jù)和對(duì)第一依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的數(shù)據(jù)模型數(shù)據(jù)是否相同;
[0017]若不同,則再次將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值,直至所述發(fā)生改變的用戶視圖數(shù)據(jù)和對(duì)第一依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的數(shù)據(jù)模型數(shù)據(jù)相同。
[0018]其中,所述將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值后還包括:
[0019]從零開(kāi)始累計(jì)修改所述第一依賴數(shù)據(jù)的數(shù)值的次數(shù),得到第一次數(shù);
[0020]若所述第一次數(shù)大于預(yù)設(shè)第一閾值,則生成第一錯(cuò)誤信息,將所述第一次數(shù)歸零。
[0021]其中,所述將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值后還包括:
[0022]判斷所述發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)和對(duì)第二依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的用戶視圖數(shù)據(jù)是否相同;
[0023]若不同,則再次將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值,直至所述發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)和對(duì)第二依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的用戶視圖數(shù)據(jù)相同。
[0024]其中,所述將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值后還包括:
[0025]從零開(kāi)始累計(jì)修改所述第二依賴數(shù)據(jù)的數(shù)值的次數(shù),得到第二次數(shù);
[0026]若所述第一次數(shù)大于預(yù)設(shè)第二閾值,則生成第二錯(cuò)誤信息,將所述第二次數(shù)歸零。
[0027]—種保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的裝置,包括:監(jiān)測(cè)模塊、存儲(chǔ)模塊、第一修改模塊、第二修改模塊和更新模塊;其中,
[0028]所述監(jiān)測(cè)模塊,用于每隔預(yù)設(shè)時(shí)間間隔同時(shí)對(duì)用戶視圖數(shù)據(jù)和數(shù)據(jù)模型數(shù)據(jù)進(jìn)行監(jiān)測(cè);
[0029]所述存儲(chǔ)模塊,用于存儲(chǔ)所述用戶視圖數(shù)據(jù)與所述數(shù)據(jù)模型數(shù)據(jù)間的數(shù)據(jù)依賴關(guān)系;
[0030]所述第一修改模塊,用于當(dāng)監(jiān)測(cè)到所述用戶視圖數(shù)據(jù)發(fā)生改變時(shí),確定發(fā)生改變的用戶視圖數(shù)據(jù)中發(fā)生改變的第一改變數(shù)據(jù)和所述第一改變數(shù)據(jù)的數(shù)值,并根據(jù)所述數(shù)據(jù)依賴關(guān)系在所述數(shù)據(jù)模型數(shù)據(jù)中查找與所述第一改變數(shù)據(jù)相依賴的第一依賴數(shù)據(jù),將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值;
[0031]所述第二修改模塊,用于當(dāng)監(jiān)測(cè)到所述數(shù)據(jù)模型數(shù)據(jù)發(fā)生改變時(shí),確定發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)中發(fā)生改變的第二改變數(shù)據(jù)和所述第二改變數(shù)據(jù)的數(shù)值,并根據(jù)所述數(shù)據(jù)依賴關(guān)系在所述用戶視圖數(shù)據(jù)中查找與所述第二改變數(shù)據(jù)相依賴的第二依賴數(shù)據(jù),將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值;
[0032]所述更新模塊,用于更新所述數(shù)據(jù)依賴關(guān)系。
[0033]其中,所述監(jiān)測(cè)模塊包括:第一監(jiān)測(cè)單元和第二監(jiān)測(cè)單元;其中,
[0034]所述第一監(jiān)測(cè)單元,用于在獲取上一用戶視圖數(shù)據(jù)的預(yù)設(shè)時(shí)間后獲取當(dāng)前用戶視圖數(shù)據(jù),判斷所述當(dāng)前用戶視圖數(shù)據(jù)與所述上一用戶視圖數(shù)據(jù)是否相同,若不相同,則確定監(jiān)測(cè)的用戶視圖數(shù)據(jù)發(fā)生改變,若相同,則確定監(jiān)測(cè)的用戶視圖數(shù)據(jù)沒(méi)有發(fā)生改變,在預(yù)設(shè)時(shí)間間隔后獲取下一用戶視圖數(shù)據(jù);
[0035]所述第二監(jiān)測(cè)單元,用于在獲取上一數(shù)據(jù)模型數(shù)據(jù)的預(yù)設(shè)時(shí)間后獲取當(dāng)前數(shù)據(jù)模型數(shù)據(jù),判斷所述當(dāng)前數(shù)據(jù)模型數(shù)據(jù)與所述上一數(shù)據(jù)模型數(shù)據(jù)是否相同,若不相同,則確定監(jiān)測(cè)的數(shù)據(jù)模型數(shù)據(jù)沒(méi)有發(fā)生改變,若相同,則確定監(jiān)測(cè)的數(shù)據(jù)模型數(shù)據(jù)沒(méi)有發(fā)生改變,在所述預(yù)設(shè)時(shí)間間隔后獲取下一數(shù)據(jù)模型數(shù)據(jù)。
[0036]其中,所述保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的裝置,還包括:第一判斷模塊和/或第二判斷模塊;其中,
[0037]所述第一判斷模塊,用于在所述第一修改模塊將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值后,判斷所述發(fā)生改變的用戶視圖數(shù)據(jù)和對(duì)第一依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的數(shù)據(jù)模型數(shù)據(jù)是否相同;若不同,則再次將所述第一依賴數(shù)據(jù)的數(shù)值修改為所述第一改變數(shù)據(jù)的數(shù)值,直至所述發(fā)生改變的用戶視圖數(shù)據(jù)和對(duì)第一依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的數(shù)據(jù)模型數(shù)據(jù)相同;
[0038]所述第二判斷模塊,用于在所述第二修改模塊將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值后,判斷所述發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)和對(duì)第二依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的用戶視圖數(shù)據(jù)是否相同;若不同,則再次將所述第二依賴數(shù)據(jù)的數(shù)值修改為所述第二改變數(shù)據(jù)的數(shù)值,直至所述發(fā)生改變的數(shù)據(jù)模型數(shù)據(jù)和對(duì)第二依賴數(shù)據(jù)的數(shù)值進(jìn)行修改后的用戶視圖數(shù)據(jù)相同。
[0039]其中,所述保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的裝置,還包括:第一計(jì)數(shù)模塊和/或第二計(jì)數(shù)模塊;其中,
[0040]所述第一計(jì)數(shù)模塊,用于從零開(kāi)始累計(jì)修改所述第一依賴數(shù)據(jù)的數(shù)值的次數(shù),得到第一次數(shù);若所述第一次數(shù)大于預(yù)設(shè)第一閾值,則生成第一錯(cuò)誤信息,將所述第一次數(shù)歸零;
[0041]所述第二計(jì)數(shù)模塊,用于從零開(kāi)始累計(jì)修改所述第二依賴數(shù)據(jù)的數(shù)值的次數(shù),得到第二次數(shù);若所述第一次數(shù)大于預(yù)設(shè)第二閾值,則生成第二錯(cuò)誤信息,將所述第二次數(shù)歸零。
[0042]基于上述技術(shù)方案,本發(fā)明實(shí)施例提供的保持用戶視圖和數(shù)據(jù)模型內(nèi)數(shù)據(jù)一致的方法和裝置,每隔預(yù)設(shè)時(shí)間間隔同時(shí)對(duì)用戶視圖數(shù)據(jù)和