CN105302787A - 一种表格数据编辑的方法及装置 - Google Patents
一种表格数据编辑的方法及装置 Download PDFInfo
- Publication number
- CN105302787A CN105302787A CN201510764290.1A CN201510764290A CN105302787A CN 105302787 A CN105302787 A CN 105302787A CN 201510764290 A CN201510764290 A CN 201510764290A CN 105302787 A CN105302787 A CN 105302787A
- Authority
- CN
- China
- Prior art keywords
- raw data
- current
- browser
- buffer memory
- edited
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种表格数据编辑的方法及装置,该方法包括:从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述缓存中的原始数据中读取所述当前显示范围对应的当前原始数据;将所述当前原始数据转换成对应的文档对象模型DOM结构;实时监控所述DOM结构,并判断所述DOM结构是否发生变化;如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。本方案能够避免用户操作过程中出现卡顿的现象。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种表格数据编辑的方法及装置。
背景技术
随着计算机技术的不断发展与进步,服务器在人们的生活及生产中发挥的作用越来越突出,服务器是具有大存储空间、高性能、高可靠性的超级计算机,通过服务器可以实现数据的存储、共享及计算,用户通过与服务器相连的客户端,可以对服务器中存储的数据进行编辑。
由于计算机处理数据是以二进制代码为基础的,因此在服务器中存储的数据都是以二进制代码的形式存在的,当用户通过客户端对服务器中存储的数据进行编辑时,需要将从服务器获取相应的二进制代码数据到客户端,客户端将二进制代码数据转换成用户可以识别的可读数据后,用户对可读数据进行编辑,编辑完成后客户端再次将编辑完成的可读数据转换成二进制代码数据,并存储到服务器中。
目前,用户通过客户端编辑服务器中的数据时,客户端将用户需要编辑的文件的二进制代码数据全部转换成可读数据,用户编辑完成后,客户端再次将编辑完成后的可读数据转换成二进制代码数据存储到服务器中。
针对现有技术编辑数据的方法,受客户端硬件配置的影响,当数据量巨大时,客户端在将二进制代码数据转换成可读数据,以及将可读数据转换成二进制代码数据的过程都需要耗费较长的时间,导致用户操作过程中出现卡顿的现象。
发明内容
本发明提供一种表格数据编辑的方法及装置,能够避免用户操作过程中国出现卡顿的现象。
本发明实施例提供了一种表格数据编辑的方法,包括:
从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述缓存中的原始数据中读取所述当前显示范围对应的当前原始数据;
将所述当前原始数据转换成对应的文档对象模型DOM结构;
实时监控所述DOM结构,并判断所述DOM结构是否发生变化;
如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
优选地,所述从所述缓存中读取当前原始数据包括:
根据所述当前显示范围中的行范围及列范围,将所述行范围上侧的第一预设行及所述行范围下侧的第二预设行作为当前行缓冲区,将所述列范围左侧的第一预设列及所述列范围右侧的第二预设列作为当前列缓冲区;
判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,如果是,从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据,否则,从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据。
优选地,在所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据之后进一步包括:
判断所述当前显示范围在所述浏览器上停留时间是否大于预设的临界停留时间,如果是,执行所述判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,否则继续执行所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据。
优选地,在所述从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据之后进一步包括:
将所述当前显示范围、当前行缓冲区及当前列缓冲区之外的其他区域对应的原始数据从所述浏览器中删除。
优选地,该方法进一步包括:
接收到对所述待编辑表格文件的表格样式进行调整的指令后,通过动态生成或更新层叠样式表CSS规则,对所述待编辑表格文件中对应表格的样式进行相应的调整。
优选地,所述DOM结构包括:input文本框、checkbox复选框、radio单选框、select下拉框、commonhelp帮助框、longtext长文本编辑框、datepicker时间选择框及diyinput自定义编辑类型中的任意一个或多个。
本发明实施例还提供了一种表格数据编辑的装置,包括:
存储单元,用于从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
读取单元,用于根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述存储单元存储到所述缓存中的原始数据中读取当前原始数据;
转换单元,用于将所述读取单元读取的当前原始数据转换成对应的文档对象模型DOM结构;
第一判断单元,用于实时监控所述转换单元转换成的DOM结构,并判断所述DOM结构是否发生变化;
更新单元,用于根据所述第一判断单元的判断结果,如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
第二判断单元,用于判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
优选地,所述读取单元,用于根据所述当前显示范围中的行范围及列范围,将所述行范围上侧的第一预设行及所述行范围下侧的第二预设行作为当前行缓冲区,将所述列范围左侧的第一预设列及所述列范围右侧的第二预设列作为当前列缓冲区,并判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,如果是,从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据,否则,从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据。
优选地,所述读取单元,进一步用于在从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据之后,判断所述当前显示范围在所述浏览器上停留的时间是否大于预设的临界停留时间,如果是,执行所述判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,否则继续执行所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据。
优选地,该装置进一步包括:删除单元;
所述删除单元,用于在所述读取单元读取所述当前原始数据之后,将所述当前显示范围、当前行缓冲区及当前列缓冲区之外的其他区域对应的原始数据从所述浏览器中删除。
优选地,该装置进一步包括:调整单元;
所述调整单元,用于接收到对所述待编辑表格文件的表格样式进行调整的指令后,通过动态生成或更新层叠样式表CSS规则,对所述待编辑表格文件的表格样式进行相应的调整。
本发明实施例提供了一种表格数据编辑的方法及装置,从服务器上读取待编辑表格文件的原始数据,并存储到浏览器的缓存中,根据浏览器中待编辑表格文件的当前显示范围,从浏览器的缓存中读取当前显示范围对应的当前原始数据,将读取到的当前原始数据转换成对应的文档对象模型DOM结构,实时对DOM结构进行监控,判断其是否发生变化,如果DOM结构发生了变化,根据变化后的DOM结构对浏览器的缓存中的当前原始数据进行更新,并在浏览器关闭后,将浏览器的缓存中的数据存储到服务器上,替换原有的原始数据,这样,用户在对待编辑表格文件进行编辑时,只将浏览器当前显示范围对应的当前原始数据转变为对应的DOM结构,无需将原始数据全部转换成对应的DOM结构,减少了数据转换成DOM结构的时间,另外,对DOM结构更改后,实时对浏览器缓存中对应的原始数据进行更新,待编辑表格文件编辑完成后直接将浏览器的缓存中的数据存储到服务器上,无需在对所有待编辑DOM结构编辑完成后再将所有DOM结构转换成数据存储到服务器上,减少了DOM结构转换成数据的时间,从而减少了浏览器的响应时间,避免用户操作过程中出现卡顿的现象。
附图说明
图1是本发明一个实施例提供的一种表格数据编辑的方法流程图;
图2是本发明另一个实施例提供的一种表格数据编辑的方法流程图;
图3是本发明一个实施例提供的一种表格数据编辑的装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明一个实施例提供了一种表格数据编辑的方法,包括:
步骤101:从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
步骤102:根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述缓存中的原始数据中读取所述当前显示范围对应的当前原始数据;
步骤103:将偶数当前原始数据转换成对应的文档对象模型DOM结构;
步骤104:实施监控所述DOM结构,并判断所述DOM结构是否发生变化,如果是,执行步骤105;
步骤105:根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
步骤106:判断所述浏览器是否被关闭,如果是,执行步骤107;
步骤107:将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
本发明实施例提供了一种表格数据编辑的方法,从服务器上读取待编辑表格文件的原始数据,并存储到浏览器的缓存中,根据浏览器中待编辑表格文件的当前显示范围,从浏览器的缓存中读取当前显示范围对应的当前原始数据,将读取到的当前原始数据转换成对应的文档对象模型DOM结构,实时对DOM结构进行监控,判断其是否发生变化,如果DOM结构发生了变化,根据变化后的DOM结构对浏览器的缓存中的当前原始数据进行更新,并在浏览器关闭后,将浏览器的缓存中的数据存储到服务器上,替换原有的原始数据,这样,用户在对待编辑表格文件进行编辑时,只将浏览器当前显示范围对应的当前原始数据转变为对应的DOM结构,无需将原始数据全部转换成对应的DOM结构,减少了数据转换成DOM结构的时间,另外,对DOM结构更改后,实时对浏览器缓存中对应的原始数据进行更新,待编辑表格文件编辑完成后直接将浏览器的缓存中的数据存储到服务器上,无需在对所有待编辑DOM结构编辑完成后再将所有DOM结构转换成数据存储到服务器上,减少了DOM结构转换成数据的时间,从而减少了浏览器的响应时间,避免用户操作过程中出现卡顿的现象。
在本发明一个实施例中,根据浏览器当前显示范围,将当前显示范围中行范围上侧的第一预设行及行范围下侧的第二预设行作为当前行缓冲区,将当前显示范围中列范围左侧的第一预设列及列范围右侧的第二预设列作为当前列缓冲区,判断浏览器中待编辑表格文件的滚动速度是否超过预设的临界滚动速度,如果没有超过,则在从浏览器的缓存中读取当前显示范围对应的原始数据的同时,读取当前行缓冲区及当前列缓冲区对应的原始数据,这样用户在以较慢的速度改变待编辑表格文件的显示范围时,浏览器会连续显示DOM结构,提高用户的视觉效果感受,如果滚动速度超过了临界速度,则只读取当前显示范围对应的原始数据作为当前原始数据,因为滚动速度较快时读取缓冲区对应的原始数据不能起到预转换DOM结构的目的,不能提高用户的视觉效果感受,反而造成计算资源的浪费。
在本发明一个实施例中,当待编辑表格文件的滚动速度过快后,不对行缓存区及列缓冲区对应的原始数据进行读取,直至待编辑表格文件的停留在一个区域的时间大于预设的临界停留时间后,重新开始待编辑表格文件的滚动速度进行判断,由于在待编辑表格文件滚动过程中用户无法对DOM结构进行编辑,用户还在继续寻找需要进行编辑的DOM结构,此时不对缓冲区对应的原始数据进行读取,可以节约计算资源,提高浏览器的性能。
在本发明一个实施例中,在待编辑表格文件滚动的过程中,实时对浏览器的当前显示范围、当前行缓冲区及当前列缓冲区进行更新,将当前行缓冲区及当前列缓冲区之外区域对应的原始数据从浏览器中删除,避免将已更新或未进行编辑的DOM对应的原始数据进行重复更新,增加对浏览器的缓存中的原始数据进行更新的计算量,提高了浏览器的性能。
在本发明一个实施例中,当用户对待编辑表格文件的表格样式进行调整时,通过动态生成或更新层叠样式表CSS规则,只对待编辑表格文件中对应表格的样式进行相应的调整,无需根据表格调整后的参数对相应的表格进行重新渲染,提高了浏览器的性能。
在本发明一个实施例中,所述DOM结构包括:input文本框、checkbox复选框、radio单选框、select下拉框、commonhelp帮助框、longtext长文本编辑框、datepicker时间选择框及diyinput自定义编辑类型中的任意一个或多个,这样,该表格数据编辑方法适用于各种DOM结构,提高了该方法的适用性。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
如图2所示,本发明一个实施例提供了一种表格数据编辑的方法,包括:
步骤201:从服务器读取待编辑表格文件的原始数据,将原始数据存储在浏览器的缓存中。
在本发明一个实施例中,当用户需要对待编辑表格文件进行编辑时,首选从服务器中读取该待编辑表格文件对应的原始数据,其中原始数据为待编辑表格文件对应的二进制代码,从服务器读取到原始数据后,将该原始数据存储到浏览器的缓存中。例如,用户需要对一个集团的员工信息表进行编辑,首先用户通过客户端从服务器上读取员工信息表对应的原始数据,将读取的原始数据存储到打开该员工信息表的浏览器的缓存中。
步骤202:在浏览器中打开待编辑表格文件。
在本发明一个实施例中,用浏览器打开待编辑表格文件,从浏览器的缓存中读取待编辑表格文件左上角部分内容对应的原始数据,以在打开待编辑表格文件时在浏览器显示界面上显示对应的表格内容。例如,浏览器的显示窗口可以显示20行×10列的内容,用户打开员工信息表后,浏览器的显示窗口显示员工信息表前20行与前10列的交叉部分。
步骤203:实时判断待编辑表格文件是否发生滚动,如果是,执行步骤204,否则继续执行步骤203。
在本发明一个实施例中,打开待编辑表格文件后,实时对待编辑表格文件的滚动行为进行监控,判断待编辑表格文件在浏览器中显示的当前显示范围是否发生变化,如果是,相应的执行步骤204,否则继续执行步骤203。例如,当浏览器中员工信息表向下或向右滚动时,相应的执行步骤204,当浏览器的当前显示范围一直停留在员工信息表的前20行与前10列的交叉部分时,继续执行步骤203。
步骤204:根据待编辑表格文件的滚动速度及当前显示范围,从浏览器的缓存中读取对应的当前原始数据。
在本发明一个实施例中,实时判断待编辑文件在浏览器中的滚动速度,如果滚动速度小于或等于预设的临界滚动速度,则根据待编辑表格文件在浏览器中的当前显示范围,从浏览器缓存中读取当前显示范围对应的原始数据及当前显示范围的缓冲区对应的原始数据作为当前原始数据,其中当前实现范围的缓冲区包括当前行缓冲区及当前列缓冲区,其中当前行缓冲区包括当前显示范围上侧的第一预设行及下侧的第二预设行,当前列缓冲区包括当前显示范围左侧的第一预设列及右侧的第二预设列,如果当前显示范围周围区域小于缓冲区包括的范围,则缓冲区至对应的边界;如果滚动速度大于预设的临界滚动速度,则根据待编辑表格文件在浏览器中的当前显示范围,只从浏览器缓存中读取当前显示范围对应的原始数据作为当前原始数据,并在待编辑表格文件停止滚动时长大于预设的临界停留时间后,重新开始执行实时判断待编辑表格文件在浏览器中的滚动速度。例如,实时判断用户滚动员工信息表的速度是否超过预设的临界滚动速度50行/秒,比如浏览器显示窗口的当前显示范围为第51行至第70行与第1列至第10列的交叉部分,如果否,则从浏览器的缓存中读取第41行至第80行与第1列至第15列的交叉部分对应的原始数据作为当前原始数据,其中第41行至第50号以及第71行至第80行为当前显示范围对应的当前行缓冲区,第11列至第15列为当前显示范围对应的当前列缓冲区,如果是,则只从浏览器的缓存中读取第51行至第70行与第1列至第10列的交叉部分对应的原始数据作为当前原始数据,并实时判断员工信息表停止滚动的时间是否超过预设的临界停留时间300ms,如果是,重新开始实时判断用户滚动员工信息表的速度是否超过50行/秒,否则,一直只从浏览器的缓存中读取当前显示范围对应的原始数据作为当前原始数据。
步骤205:将读取的当前原始数据转换成对应的DOM结构。
在本发明一个实施例中,从浏览器的缓存中读取到当前原始数据后,根据当前原始数据,在浏览器的消失窗口中渲染出当前原始数据对应的DOM结构,其中DOM结构包括input文本框、checkbox复选框、radio单选框、select下拉框、commonhelp帮助框、longtext长文本编辑框、datepicker时间选择框及diyinput自定义编辑类型中的任意一个或多个。例如,用户将员工信息表滚动至第51行至第70行与第1列至第10列的交叉部分后停止滚动,需要对该范围内员工的信息进行编辑,根据读取到的当前原始数据,渲染出第51行至第70行与第1列至第10列交叉范围内的各个DOM结构,其中第一列为员工姓名,DOM类型为input文本框,第二列为性别,DOM类型为radio单选框,第三列为出生年月,DOM类型为datepicker时间选择框,第四列为工龄,DOM类型为select下拉框等。
步骤206:实时判断浏览器显示窗口中当前显示的DOM结构是否发生改变,如果是,执行步骤207,否则继续执行步骤206。
在本发明一个实施例中,在用户对待编辑表格文件进行标记的过程中,实时监控浏览器显示窗口当前显示的各个DOM结构是否因被编辑而发生变化,如果是,则相应的执行步骤207,否则,继续执行步骤206,对当前显示的DOM结构进行监控。例如,如果用户将第51行第二列的员工A的性别由男变成女,监控到第51行第2列的DOM结构发生了变化,相应的执行步骤207,如果用户没有对第51行至第70行与第1列至第10列交叉范围的任何一个DOM结构做出调整,则继续执行步骤206,对当前显示范围内的DOM结构进行监控。
步骤207:根据发生改变的DOM结构,对浏览器的缓存中的原始数据进行更新。
在本发明一个实施例中,当判断当前显示范围内有DOM结构发生改变时,将发生改变的DOM结构转换成对应的数据,根据转换成的数据,对浏览器缓存中的该DOM结构对应的原始数据进行更新,以使浏览器的缓存中的原始数据与待编辑表格文件编辑后的DOM结构对应的数据保持一致。例如,当监测到用户将第51行第2列的用户A的性别由男变成女后,将第51行第2列对应的radio单选框转换成对应的数据,根据该转换成的数据,对浏览器缓存中第51行第2列DOM结构对应的原始数据进行修改,以使浏览器的缓存中员工信息表的第51行第2列对应的原始数据与员工信息表的第51行第2列修改后的DOM结构对应的数据保持一致。
步骤208:判断浏览器是否被关闭,如果是,执行步骤209,否则执行步骤203。
在本发明一个实施例中,当用户对浏览器的当前显示范围内的DOM结构编辑完成后,判断浏览器是否被关闭,如果是,说明用户已经完成了对待编辑表格文件的全部编辑任务,相应的执行步骤209,如果浏览器没有被关闭,说明用户可能还有其他位于当前显示范围之外的DOM结构需要进行编辑,用户可能会滚动待编辑表格文件,以对需要进行编辑的DOM结构进行定位,相应的执行步骤203。例如,用户对第51行第2列的用户A的性别修改完成后,用户将浏览器关闭,说明用户已经完成了本次对员工信息表的编辑工作,相应的执行步骤209,如果用户在对51行第2列的用户A的性别修改完成后,还需要对第100行第3列的用户B的出生年月进行修改,用户会滚动员工信息表至包括第100行第3列的显示范围,相应的执行步骤203,以实现对用户B的出生年月进行修改。
步骤209:将浏览器的缓存中的数据存储到服务器中,替换待编辑表格文件原有的原始数据。
在本发明一个实施例中,当浏览器被关闭后,将浏览器的缓存中的数据存储到服务器中,用浏览器的缓存中的数据替代服务器中待编辑表格文件的原始数据。例如,在浏览器关闭后,将浏览器缓存中的员工信息表的数据存储到服务器中,代替服务器中原有的员工信息表的原始数据。
需要说明的是,在本发明一个实施例中,如果用户对待编辑表格文件的表格样式进行调整,动态生成或更新层叠样式表CSS规则,对待编辑表格文件中对应的表格的样式进行调整。例如,用户通过拖拽的方式对员工信息表的第2列的列宽进行调整时,通过动态生成或更新层叠样式表CSS规则,对员工信息表的第2列的皮肤样式进行调整。
如图3所示,本发明一个实施例提供了一种表格数据编辑的装置,包括:存储单元301、读取单元302、转换单元303、第一判断单元304、更新单元305及第二判断单元306;
所述存储单元301,用于从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
所述读取单元302,用于根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述存储单元301存储到所述缓存中的原始数据中读取当前原始数据;
所述转换单元303,用于将所述读取单元302读取的当前原始数据转换成对应的文档对象模型DOM结构;
所述第一判断单元304,用于实时监控所述转换单元303转换成的DOM结构,并判断所述DOM结构是否发生变化;
所述更新单元305,用于根据所述第一判断单元304的判断结果,如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
所述第二判断单元306,用于判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
在本发明一个实施例中,
所述读取单元302,用于根据所述当前显示范围中的行范围及列范围,将所述行范围上侧的第一预设行及所述行范围下侧的第二预设行作为当前行缓冲区,将所述列范围左侧的第一预设列及所述列范围右侧的第二预设列作为当前列缓冲区,并判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,如果是,从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据,否则,从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据。
在本发明一个实施例中,
所述读取单元302,进一步用于在从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据之后,判断所述当前显示范围在所述浏览器上停留的时间是否大于预设的临界停留时间,如果是,执行所述判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,否则继续执行所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据。
在本发明一个实施例中,该装置进一步包括:删除单元;
所述删除单元,用于在所述读取单元302读取所述当前原始数据之后,将所述当前显示范围、当前行缓冲区及当前列缓冲区之外的其他区域对应的原始数据从所述浏览器中删除。
在本发明一个实施例中,该装置进一步包括:调整单元;
所述调整单元,用于接收到对所述待编辑表格文件的表格样式进行调整的指令后,通过动态生成或更新层叠样式表CSS规则,对所述待编辑表格文件的表格样式进行相应的调整。
需要说明的是,上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
根据上述方案,本发明的实施例所提供的一种表格数据编辑的方法及装置,至少具有如下有益效果:
1、本发明实施例中,从服务器上读取待编辑表格文件的原始数据,并存储到浏览器的缓存中,根据浏览器中待编辑表格文件的当前显示范围,从浏览器的缓存中读取当前显示范围对应的当前原始数据,将读取到的当前原始数据转换成对应的文档对象模型DOM结构,实时对DOM结构进行监控,判断其是否发生变化,如果DOM结构发生了变化,根据变化后的DOM结构对浏览器的缓存中的当前原始数据进行更新,并在浏览器关闭后,将浏览器的缓存中的数据存储到服务器上,替换原有的原始数据,这样,用户在对待编辑表格文件进行编辑时,只将浏览器当前显示范围对应的当前原始数据转变为对应的DOM结构,无需将原始数据全部转换成对应的DOM结构,减少了数据转换成DOM结构的时间,另外,对DOM结构更改后,实时对浏览器缓存中对应的原始数据进行更新,待编辑表格文件编辑完成后直接将浏览器的缓存中的数据存储到服务器上,无需在对所有待编辑DOM结构编辑完成后再将所有DOM结构转换成数据存储到服务器上,减少了DOM结构转换成数据的时间,从而减少了浏览器的响应时间,避免用户操作过程中出现卡顿的现象。
2、本发明实施例中,可以将待编辑表格文件中当前显示范围周围的一定区域作为当前显示范围的缓冲区,当从浏览器的缓存中读取当前显示范围对应的原始数据时,同时读取当前显示范围的缓冲区对应的原始数据,这样,用户在对待编辑表格文件进行滚动时,由于缓冲区对应的原始数据已经被转换成对应的DOM结构,用户会观察到浏览器显示界面上DOM结构是连续的,提高了用户的视觉效果感受。
3、本发明实施例中,当待编辑表格文件的滚动速度较快时,在从浏览器的缓存中读取当前显示范围对应的原始数据时,不对当前显示范围的缓冲区对应的原始数据进行读取,因为待编辑表格文件滚动速度较快时,读取缓冲区对应的原始数据也不会使用户观察到浏览器显示窗口上的DOM结构是连续的,反而增加了计算资源的占用,降低了浏览器的性能。
4、本发明实施例中,DOM结构包括input文本框、checkbox复选框、radio单选框、select下拉框、commonhelp帮助框、longtext长文本编辑框、datepicker时间选择框及diyinput自定义编辑等多种类型,保证各种DOM结构都可以采用本发明实施例提供的方法进行编辑,提高了本发明实施例提供的方法的适用性。
5、本发明实施例中,当用户对待编辑表格文件的表格样式进行调整时,通过动态生成或更新CSS规则的技术手段,不变动表格的DOM结构,仅对相应表格的皮肤样式进行调整,达到只产生一次渲染计算的目的,进一步提高了浏览器的性能,避免用户使用过程中出现卡顿的现象。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种表格数据编辑的方法,其特征在于,包括:
从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述缓存中的原始数据中读取所述当前显示范围对应的当前原始数据;
将所述当前原始数据转换成对应的文档对象模型DOM结构;
实时监控所述DOM结构,并判断所述DOM结构是否发生变化;
如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
2.根据权利要求1所述的方法,其特征在于,所述从所述缓存中读取当前原始数据包括:
根据所述当前显示范围中的行范围及列范围,将所述行范围上侧的第一预设行及所述行范围下侧的第二预设行作为当前行缓冲区,将所述列范围左侧的第一预设列及所述列范围右侧的第二预设列作为当前列缓冲区;
判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,如果是,从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据,否则,从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据。
3.根据权利要求2所述的方法,其特征在于,在所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据之后进一步包括:
判断所述当前显示范围在所述浏览器上停留时间是否大于预设的临界停留时间,如果是,执行所述判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,否则继续执行所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据。
4.根据权利要求2所述的方法,其特征在于,在所述从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据之后进一步包括:
将所述当前显示范围、当前行缓冲区及当前列缓冲区之外的其他区域对应的原始数据从所述浏览器中删除。
5.根据权利要求1所述的方法,其特征在于,进一步包括:
接收到对所述待编辑表格文件的表格样式进行调整的指令后,通过动态生成或更新层叠样式表CSS规则,对所述待编辑表格文件中对应表格的样式进行相应的调整。
6.根据权利要求1至5中任一所述的方法,其特征在于,
所述DOM结构包括:input文本框、checkbox复选框、radio单选框、select下拉框、commonhelp帮助框、longtext长文本编辑框、datepicker时间选择框及diyinput自定义编辑类型中的任意一个或多个。
7.一种表格数据编辑的装置,其特征在于,包括:
存储单元,用于从服务器读取待编辑表格文件的原始数据,并将所述原始数据存储到浏览器的缓存中;
读取单元,用于根据所述待编辑表格文件在所述浏览器中的当前显示范围,从所述存储单元存储到所述缓存中的原始数据中读取当前原始数据;
转换单元,用于将所述读取单元读取的当前原始数据转换成对应的文档对象模型DOM结构;
第一判断单元,用于实时监控所述转换单元转换成的DOM结构,并判断所述DOM结构是否发生变化;
更新单元,用于根据所述第一判断单元的判断结果,如果是,根据变化后的所述DOM结构,对所述缓存中的所述当前原始数据进行更新;
第二判断单元,用于判断所述浏览器是否被关闭,如果是,将所述缓存中的数据存储到所述服务器中,替换原有所述原始数据。
8.根据权利要求7所述的装置,其特征在于,
所述读取单元,用于根据所述当前显示范围中的行范围及列范围,将所述行范围上侧的第一预设行及所述行范围下侧的第二预设行作为当前行缓冲区,将所述列范围左侧的第一预设列及所述列范围右侧的第二预设列作为当前列缓冲区,并判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,如果是,从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据,否则,从所述缓存中读取所述当前显示范围、当前行缓冲区及当前列缓冲区对应的原始数据作为所述当前原始数据。
9.根据权利要求8所述的装置,其特征在于,
所述读取单元,进一步用于在从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据之后,判断所述当前显示范围在所述浏览器上停留的时间是否大于预设的临界停留时间,如果是,执行所述判断所述浏览器中所述待编辑表格文件的滚动速度是否大于预设的临界滚动速度,否则继续执行所述从所述缓存中读取所述当前显示范围对应的原始数据作为所述当前原始数据。
10.根据权利要求7至9中任一所述的装置,其特征在于,进一步包括:
删除单元,用于在所述读取单元读取所述当前原始数据之后,将所述当前显示范围、当前行缓冲区及当前列缓冲区之外的其他区域对应的原始数据从所述浏览器中删除;
和/或,
调整单元,用于接收到对所述待编辑表格文件的表格样式进行调整的指令后,通过动态生成或更新层叠样式表CSS规则,对所述待编辑表格文件的表格样式进行相应的调整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510764290.1A CN105302787A (zh) | 2015-11-10 | 2015-11-10 | 一种表格数据编辑的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510764290.1A CN105302787A (zh) | 2015-11-10 | 2015-11-10 | 一种表格数据编辑的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105302787A true CN105302787A (zh) | 2016-02-03 |
Family
ID=55200066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510764290.1A Pending CN105302787A (zh) | 2015-11-10 | 2015-11-10 | 一种表格数据编辑的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105302787A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897444A (zh) * | 2017-03-01 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种表格数据更新方法及装置 |
CN107203553A (zh) * | 2016-03-17 | 2017-09-26 | 北京神州泰岳软件股份有限公司 | 一种实现网页表格行/列锁定的方法和装置 |
CN107544952A (zh) * | 2017-08-28 | 2018-01-05 | 金蝶软件(中国)有限公司 | 报表生成方法、装置、存储介质和计算机设备 |
CN108509189A (zh) * | 2018-04-13 | 2018-09-07 | 南京新贝金服科技有限公司 | 一种基于dom的h5时间选择器的组件统一实现方法 |
CN109992759A (zh) * | 2017-12-29 | 2019-07-09 | 珠海金山办公软件有限公司 | 表格对象编辑方法、装置、电子设备及存储介质 |
CN110968987A (zh) * | 2018-09-30 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 表格显示方法和装置、存储介质及电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149935A1 (en) * | 2002-01-18 | 2003-08-07 | Hiroshi Takizawa | Document authoring system and authoring management program |
CN101876971A (zh) * | 2010-06-22 | 2010-11-03 | 北京伟库电子商务科技有限公司 | 报表展现方法和装置 |
CN102934105A (zh) * | 2010-04-12 | 2013-02-13 | 谷歌公司 | 在驻留的文字处理器中的协作光标 |
CN104112002A (zh) * | 2014-07-14 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种表单适配的方法、装置和系统 |
-
2015
- 2015-11-10 CN CN201510764290.1A patent/CN105302787A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030149935A1 (en) * | 2002-01-18 | 2003-08-07 | Hiroshi Takizawa | Document authoring system and authoring management program |
CN102934105A (zh) * | 2010-04-12 | 2013-02-13 | 谷歌公司 | 在驻留的文字处理器中的协作光标 |
CN101876971A (zh) * | 2010-06-22 | 2010-11-03 | 北京伟库电子商务科技有限公司 | 报表展现方法和装置 |
CN104112002A (zh) * | 2014-07-14 | 2014-10-22 | 福建星网锐捷网络有限公司 | 一种表单适配的方法、装置和系统 |
Non-Patent Citations (1)
Title |
---|
王刘杨 等: "在线电子表格之数据存储设计", 《计算机光盘软件与应用》 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107203553A (zh) * | 2016-03-17 | 2017-09-26 | 北京神州泰岳软件股份有限公司 | 一种实现网页表格行/列锁定的方法和装置 |
CN107203553B (zh) * | 2016-03-17 | 2020-07-24 | 北京神州泰岳软件股份有限公司 | 一种实现网页表格行/列锁定的方法和装置 |
CN106897444A (zh) * | 2017-03-01 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种表格数据更新方法及装置 |
CN107544952A (zh) * | 2017-08-28 | 2018-01-05 | 金蝶软件(中国)有限公司 | 报表生成方法、装置、存储介质和计算机设备 |
CN109992759A (zh) * | 2017-12-29 | 2019-07-09 | 珠海金山办公软件有限公司 | 表格对象编辑方法、装置、电子设备及存储介质 |
CN109992759B (zh) * | 2017-12-29 | 2023-12-01 | 珠海金山办公软件有限公司 | 表格对象编辑方法、装置、电子设备及存储介质 |
CN108509189A (zh) * | 2018-04-13 | 2018-09-07 | 南京新贝金服科技有限公司 | 一种基于dom的h5时间选择器的组件统一实现方法 |
CN110968987A (zh) * | 2018-09-30 | 2020-04-07 | 腾讯科技(深圳)有限公司 | 表格显示方法和装置、存储介质及电子装置 |
CN110968987B (zh) * | 2018-09-30 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 表格显示方法和装置、存储介质及电子装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105302787A (zh) | 一种表格数据编辑的方法及装置 | |
CN109614424B (zh) | 页面布局生成方法、装置、计算设备和介质 | |
CN101207450B (zh) | 一种专题模板制作方法及客户端和网络侧服务器 | |
CN109408764B (zh) | 页面区域划分方法、装置、计算设备和介质 | |
CN106970898A (zh) | 用于生成文章的方法和装置 | |
CN102200971A (zh) | 一种实现网页内容预览的方法和设备 | |
CN107925786A (zh) | 动画的数据可视化视频 | |
CN103593333B (zh) | 一种电子书文档的处理方法、终端及电子设备 | |
CN112860902A (zh) | 舆情情感热度计算方法及装置 | |
CN104572035A (zh) | 网页代码的动态生成方法和动态生成系统 | |
CN106227770B (zh) | 一种智能化的新闻网页信息抽取方法 | |
CN102629204A (zh) | 网页源代码生成方法及装置 | |
CN109657220A (zh) | Pdf文档的在线编辑方法、装置及电子设备 | |
CN105404472A (zh) | 一种压缩日志时间数据的存储空间的方法及装置 | |
CN114138244A (zh) | 模型类文件自动生成方法、装置、存储介质及电子设备 | |
CN110209985B (zh) | 一种更新dom树的方法 | |
CN110162301B (zh) | 一种表单渲染方法、装置和存储介质 | |
CN105739962A (zh) | 基于html的表格单元格编辑器控件扩展方法和系统 | |
CN115935909A (zh) | 一种文件生成方法、装置及电子设备 | |
CN115017161A (zh) | 一种结合虚拟dom更新树形数据结构方法、装置及应用 | |
JP2010128518A5 (zh) | ||
CN115170700A (zh) | 基于Flutter框架实现CSS动画的方法、计算机设备及存储介质 | |
JP2007265011A (ja) | 画面プログラムレイアウト変更方法および情報処理装置およびプログラムおよび記録媒体 | |
CN111143951B (zh) | 一种跟踪剪切机主机的参数化设计方法及系统 | |
CN107766117A (zh) | 一种界面展示的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160203 |
|
WD01 | Invention patent application deemed withdrawn after publication |