數(shù)據(jù)對應(yīng)的D0M結(jié)構(gòu),其中D0M結(jié)構(gòu)包括input文本框、checkbox復(fù)選框、rad1單選框、select下拉框、common help幫助框、longtext長文本編輯框、date picker時間選擇框及diy input自定義編輯類型中的任意一個或多個。例如,用戶將員工信息表滾動至第51行至第70行與第1列至第10列的交叉部分后停止?jié)L動,需要對該范圍內(nèi)員工的信息進行編輯,根據(jù)讀取到的當(dāng)前原始數(shù)據(jù),渲染出第51行至第70行與第1列至第10列交叉范圍內(nèi)的各個D0M結(jié)構(gòu),其中第一列為員工姓名,D0M類型為input文本框,第二列為性別,D0M類型為rad1單選框,第三列為出生年月,D0M類型為date picker時間選擇框,第四列為工齡,D0M類型為select下拉框等。
[0068]步驟206:實時判斷瀏覽器顯示窗口中當(dāng)前顯示的D0M結(jié)構(gòu)是否發(fā)生改變,如果是,執(zhí)行步驟207,否則繼續(xù)執(zhí)行步驟206。
[0069]在本發(fā)明一個實施例中,在用戶對待編輯表格文件進行標(biāo)記的過程中,實時監(jiān)控瀏覽器顯示窗口當(dāng)前顯示的各個D0M結(jié)構(gòu)是否因被編輯而發(fā)生變化,如果是,則相應(yīng)的執(zhí)行步驟207,否則,繼續(xù)執(zhí)行步驟206,對當(dāng)前顯示的D0M結(jié)構(gòu)進行監(jiān)控。例如,如果用戶將第51行第二列的員工A的性別由男變成女,監(jiān)控到第51行第2列的D0M結(jié)構(gòu)發(fā)生了變化,相應(yīng)的執(zhí)行步驟207,如果用戶沒有對第51行至第70行與第1列至第10列交叉范圍的任何一個D0M結(jié)構(gòu)做出調(diào)整,則繼續(xù)執(zhí)行步驟206,對當(dāng)前顯示范圍內(nèi)的D0M結(jié)構(gòu)進行監(jiān)控。
[0070]步驟207:根據(jù)發(fā)生改變的D0M結(jié)構(gòu),對瀏覽器的緩存中的原始數(shù)據(jù)進行更新。
[0071]在本發(fā)明一個實施例中,當(dāng)判斷當(dāng)前顯示范圍內(nèi)有D0M結(jié)構(gòu)發(fā)生改變時,將發(fā)生改變的D0M結(jié)構(gòu)轉(zhuǎn)換成對應(yīng)的數(shù)據(jù),根據(jù)轉(zhuǎn)換成的數(shù)據(jù),對瀏覽器緩存中的該D0M結(jié)構(gòu)對應(yīng)的原始數(shù)據(jù)進行更新,以使瀏覽器的緩存中的原始數(shù)據(jù)與待編輯表格文件編輯后的D0M結(jié)構(gòu)對應(yīng)的數(shù)據(jù)保持一致。例如,當(dāng)監(jiān)測到用戶將第51行第2列的用戶A的性別由男變成女后,將第51行第2列對應(yīng)的rad1單選框轉(zhuǎn)換成對應(yīng)的數(shù)據(jù),根據(jù)該轉(zhuǎn)換成的數(shù)據(jù),對瀏覽器緩存中第51行第2列D0M結(jié)構(gòu)對應(yīng)的原始數(shù)據(jù)進行修改,以使瀏覽器的緩存中員工信息表的第51行第2列對應(yīng)的原始數(shù)據(jù)與員工信息表的第51行第2列修改后的D0M結(jié)構(gòu)對應(yīng)的數(shù)據(jù)保持一致。
[0072]步驟208:判斷瀏覽器是否被關(guān)閉,如果是,執(zhí)行步驟209,否則執(zhí)行步驟203。
[0073]在本發(fā)明一個實施例中,當(dāng)用戶對瀏覽器的當(dāng)前顯示范圍內(nèi)的D0M結(jié)構(gòu)編輯完成后,判斷瀏覽器是否被關(guān)閉,如果是,說明用戶已經(jīng)完成了對待編輯表格文件的全部編輯任務(wù),相應(yīng)的執(zhí)行步驟209,如果瀏覽器沒有被關(guān)閉,說明用戶可能還有其他位于當(dāng)前顯示范圍之外的D0M結(jié)構(gòu)需要進行編輯,用戶可能會滾動待編輯表格文件,以對需要進行編輯的D0M結(jié)構(gòu)進行定位,相應(yīng)的執(zhí)行步驟203。例如,用戶對第51行第2列的用戶A的性別修改完成后,用戶將瀏覽器關(guān)閉,說明用戶已經(jīng)完成了本次對員工信息表的編輯工作,相應(yīng)的執(zhí)行步驟209,如果用戶在對51行第2列的用戶A的性別修改完成后,還需要對第100行第3列的用戶B的出生年月進行修改,用戶會滾動員工信息表至包括第100行第3列的顯示范圍,相應(yīng)的執(zhí)行步驟203,以實現(xiàn)對用戶B的出生年月進行修改。
[0074]步驟209:將瀏覽器的緩存中的數(shù)據(jù)存儲到服務(wù)器中,替換待編輯表格文件原有的原始數(shù)據(jù)。
[0075]在本發(fā)明一個實施例中,當(dāng)瀏覽器被關(guān)閉后,將瀏覽器的緩存中的數(shù)據(jù)存儲到服務(wù)器中,用瀏覽器的緩存中的數(shù)據(jù)替代服務(wù)器中待編輯表格文件的原始數(shù)據(jù)。例如,在瀏覽器關(guān)閉后,將瀏覽器緩存中的員工信息表的數(shù)據(jù)存儲到服務(wù)器中,代替服務(wù)器中原有的員工信息表的原始數(shù)據(jù)。
[0076]需要說明的是,在本發(fā)明一個實施例中,如果用戶對待編輯表格文件的表格樣式進行調(diào)整,動態(tài)生成或更新層疊樣式表CSS規(guī)則,對待編輯表格文件中對應(yīng)的表格的樣式進行調(diào)整。例如,用戶通過拖拽的方式對員工信息表的第2列的列寬進行調(diào)整時,通過動態(tài)生成或更新層疊樣式表CSS規(guī)則,對員工信息表的第2列的皮膚樣式進行調(diào)整。
[0077]如圖3所示,本發(fā)明一個實施例提供了一種表格數(shù)據(jù)編輯的裝置,包括:存儲單元301、讀取單元302、轉(zhuǎn)換單元303、第一判斷單元304、更新單元305及第二判斷單元306 ;
[0078]所述存儲單元301,用于從服務(wù)器讀取待編輯表格文件的原始數(shù)據(jù),并將所述原始數(shù)據(jù)存儲到瀏覽器的緩存中;
[0079]所述讀取單元302,用于根據(jù)所述待編輯表格文件在所述瀏覽器中的當(dāng)前顯示范圍,從所述存儲單元301存儲到所述緩存中的原始數(shù)據(jù)中讀取當(dāng)前原始數(shù)據(jù);
[0080]所述轉(zhuǎn)換單元303,用于將所述讀取單元302讀取的當(dāng)前原始數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的文檔對象模型D0M結(jié)構(gòu);
[0081]所述第一判斷單元304,用于實時監(jiān)控所述轉(zhuǎn)換單元303轉(zhuǎn)換成的D0M結(jié)構(gòu),并判斷所述D0M結(jié)構(gòu)是否發(fā)生變化;
[0082]所述更新單元305,用于根據(jù)所述第一判斷單元304的判斷結(jié)果,如果是,根據(jù)變化后的所述D0M結(jié)構(gòu),對所述緩存中的所述當(dāng)前原始數(shù)據(jù)進行更新;
[0083]所述第二判斷單元306,用于判斷所述瀏覽器是否被關(guān)閉,如果是,將所述緩存中的數(shù)據(jù)存儲到所述服務(wù)器中,替換原有所述原始數(shù)據(jù)。
[0084]在本發(fā)明一個實施例中,
[0085]所述讀取單元302,用于根據(jù)所述當(dāng)前顯示范圍中的行范圍及列范圍,將所述行范圍上側(cè)的第一預(yù)設(shè)行及所述行范圍下側(cè)的第二預(yù)設(shè)行作為當(dāng)前行緩沖區(qū),將所述列范圍左側(cè)的第一預(yù)設(shè)列及所述列范圍右側(cè)的第二預(yù)設(shè)列作為當(dāng)前列緩沖區(qū),并判斷所述瀏覽器中所述待編輯表格文件的滾動速度是否大于預(yù)設(shè)的臨界滾動速度,如果是,從所述緩存中讀取所述當(dāng)前顯示范圍對應(yīng)的原始數(shù)據(jù)作為所述當(dāng)前原始數(shù)據(jù),否則,從所述緩存中讀取所述當(dāng)前顯示范圍、當(dāng)前行緩沖區(qū)及當(dāng)前列緩沖區(qū)對應(yīng)的原始數(shù)據(jù)作為所述當(dāng)前原始數(shù)據(jù)。
[0086]在本發(fā)明一個實施例中,
[0087]所述讀取單元302,進一步用于在從所述緩存中讀取所述當(dāng)前顯示范圍對應(yīng)的原始數(shù)據(jù)作為所述當(dāng)前原始數(shù)據(jù)之后,判斷所述當(dāng)前顯示范圍在所述瀏覽器上停留的時間是否大于預(yù)設(shè)的臨界停留時間,如果是,執(zhí)行所述判斷所述瀏覽器中所述待編輯表格文件的滾動速度是否大于預(yù)設(shè)的臨界滾動速度,否則繼續(xù)執(zhí)行所述從所述緩存中讀取所述當(dāng)前顯示范圍對應(yīng)的原始數(shù)據(jù)作為所述當(dāng)前原始數(shù)據(jù)。
[0088]在本發(fā)明一個實施例中,該裝置進一步包括:刪除單元;
[0089]所述刪除單元,用于在所述讀取單元302讀取所述當(dāng)前原始數(shù)據(jù)之后,將所述當(dāng)前顯示范圍、當(dāng)前行緩沖區(qū)及當(dāng)前列緩沖區(qū)之外的其他區(qū)域?qū)?yīng)的原始數(shù)據(jù)從所述瀏覽器中刪除。
[0090]在本發(fā)明一個實施例中,該裝置進一步包括:調(diào)整單元;
[0091]所述調(diào)整單元,用于接收到對所述待編輯表格文件的表格樣式進行調(diào)整的指令后,通過動態(tài)生成或更新層疊樣式表CSS規(guī)則,對所述待編輯表格文件的表格樣式進行相應(yīng)的調(diào)整。
[0092]需要說明的是,上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過程等內(nèi)容,由于與本發(fā)明方法實施例基于同一構(gòu)思,具體內(nèi)容可參見本發(fā)明方法實施例中的敘述,此處不再贅述。
[0093]根據(jù)上述方案,本發(fā)明的實施例所提供的一種表格數(shù)據(jù)編輯的方法及裝置,至少具有如下有益效果:
[0094]1、本發(fā)明實施例中,從服務(wù)器上讀取待編輯表格文件的原始數(shù)據(jù),并存儲到瀏覽器的緩存中,根據(jù)瀏覽器中待編輯表格文件的當(dāng)前顯示范圍,從瀏覽器的緩存中讀取當(dāng)前顯示范圍對應(yīng)的當(dāng)前原始數(shù)據(jù),將讀取到的當(dāng)前原始數(shù)據(jù)轉(zhuǎn)換成對應(yīng)的文檔對象模型D0M結(jié)構(gòu),實時對D0M結(jié)構(gòu)進行監(jiān)控,判斷其是否發(fā)生變化,如果D0M結(jié)構(gòu)發(fā)生了變化,根據(jù)變化后的D0M結(jié)構(gòu)對瀏覽器的緩存中的當(dāng)前原始數(shù)據(jù)進行更新,并在瀏覽器關(guān)閉后,將瀏覽器的緩存中的數(shù)據(jù)存儲到服務(wù)器上,替換原有的原始數(shù)據(jù),這樣,用戶在對待編輯表格文件進行編輯時,只將瀏覽器當(dāng)前顯示范圍對應(yīng)的當(dāng)前原始數(shù)據(jù)轉(zhuǎn)變?yōu)閷?yīng)的D0M結(jié)構(gòu),無需將原始數(shù)據(jù)全部轉(zhuǎn)換成對應(yīng)的D0M結(jié)構(gòu),減少了數(shù)據(jù)轉(zhuǎn)換成D0M結(jié)構(gòu)的時間,另外,對D0M結(jié)構(gòu)更改后,實時對瀏覽器緩存中對應(yīng)的原始數(shù)據(jù)進行更新,待編輯表格文件編輯完成后直接將瀏覽器的緩存中的數(shù)據(jù)存儲到服務(wù)器上,無需在對所有待編輯D0M結(jié)構(gòu)編輯完成后再將所有D0M結(jié)構(gòu)轉(zhuǎn)換成數(shù)據(jù)存儲到服務(wù)器上,減少了 D0M結(jié)構(gòu)轉(zhuǎn)換成數(shù)據(jù)的時間,從而減少了瀏覽器的響應(yīng)時間,避免用戶操作過程中出現(xiàn)卡頓的現(xiàn)象。
[0095]2、本發(fā)明實施例中,可以將待編輯表格文件中當(dāng)前顯示范圍周圍的一定區(qū)域作為當(dāng)前顯示范圍