一种基于对象的自定义扩展信息的方法

文档序号:6384538阅读:136来源:国知局
专利名称:一种基于对象的自定义扩展信息的方法
技术领域
本发明涉及电子商务平台领域,具体涉及对表单进行自定义扩展处理的方法。
背景技术
如今,不管是在WEB应用程序,还是在本地应用程序中,数据表单都已经是一个非常重要的组成部分。它为用户提供可视化的交互界面,促进用户的输入,使得各种程序从用户那里收集数据成为可能,而用户的输入正是业务流程的关键所在,在实际情况中几乎所有软件系统的开发都需要创建一个或多个数据表单来展示数据并收集用户的输入。同时,在实际情况中,应用程序常常需要运行在各种不同类型的终端上,比如传统的PC机,以及各种移动终端等,这就需要对数据表单界面进行针对性的设计,从而使得开发人员需要为同一个数据表单界面设计并开发多个对应不同类型终端的版本,导致大量的重复设计工作,费时费力。因此,如何快速、高效地对数据表单进行描述及展现已成为开发人员关注的焦点。在许多领域中,常使用XML来存储和传输数据信息。例如Web技术中的XForms,它被W3C组织制定为HTML表单的替代标准,其数据模型便以XML作为存储和操作数据的对象,并通过XML在网络上传输数据。XML是指可扩展标记语言(Extensible MarkupLanguage),类似于HTML,它是一种标记语言。与主要用于表现和展示数据的HTML语言不同的是,XML被设计用来传送及携带数据。XML于1998年2月发布为W3C标准,已被广泛应用于信息存储和描述领域。围绕XML技术而实现的WEB技术,一般是通过将自定义的表单信息用XML标记语言进行描述、存储、解析,然后生成HTML表单。该技术虽然能直接描述HTML元素,但对表单元素的输入控制与内容合法验证、事件处理、组合表单元素的表达等都需要比较复杂的实现过程。另外,对于客户端界面主要由JavaScript (简称JS)代码动态生成的系统来说,采用上述的XML方式,实现复杂,效率也不高,且在要求动态生成的基础信息和自定义扩展信息在同一界面上显示时,需要较为复杂的处理。例如一篇授权公告日为2012. 01. 11、授权公告号为CN 101661512 B的发明专利,
公开了一种识别传统表单信息并创建对应Web表单的系统及方法,其方法主要包括以下步骤⑴读入传统表单信息;(2)识别及分析;(3)修正与设定;⑷发送及存储;(5)解析。该方法重点在于将纸质的传统表单通过一系列处理转换成数字形式的Web表单,并不具备能自动适应用户应用需求变化的特点。再例如申请公布日为2012. 02. 01、申请公布号为CN 102339314 A的发明专利,公开了一种基于XML的跨终端的数据表单描述与展现方法,该方法通过界面描述文件对数据表单界面的全局、局部样式,如颜色、字体、层次关系、对齐方式、换行方式等进行定义,对数据表单界面元素与数据字段间的绑定关系,如数据的类型、可见性、只读性、校检规则以及数据字段的编辑器类型等进行定义,针对不同类型的终端,实现特定的界面描述解析器,解析界面描述文件,获取对应终端上的数据表单界面的布局方式及数据绑定关系,通过一次定义界面描述文件,实现同一数据表单在不同终端上的不同界面展现形式。该方法只实现了界面的相对灵活性,后台业务数据的处理需要单独编码实现。当业务发生变化时,需要进行复杂的配置修改,同时后台数据的业务逻辑处理也需要修改大量代码。再例如申请公布日为2012. 04. 25、申请公布号为CN 102426549 A的发明专利,公开了一种高效的WEB的表单校验方法及其框架,其通过配置文件转换插件,把服务器端校验规则配置文件(XML格式文件)一键转换成客户端校验规则配置文件(JSON格式文件),既负责服务器端的数据校验,又负责了客户端的数据校验,保证了服务器端和客户端校验规则的逻辑一致,从而消除了服务器端和客户端校验逻辑之间的不统一,并减小了重复开发工作量,提高了代码质量,提升了电子商务平台的性能和稳定性。该方法提出的数据校验也只适用于对用户输入内容的一般性规则验证,并且该方法设计的配置文件与业务相关,不适用于自定义表单。

发明内容
本发明所要解决的技术问题是,提供一种基于对象的自定义扩展信息的方法,充分结合当前流行的JavaScript对象技术,将自定义的表单字段按对象方式进行组织设计、定义、存储及查询显示,实现基础信息与用户自定义扩展信息的方便、快捷、灵活的统一展现,以解决现有技术之不足。为了解决上述技术问题,本发明的一种基于对象的自定义扩展信息的方法,该方法中,首先新建一个通用对象模板,对该通用对象模板的对象属性(例如字段名称、类型编码、字段长度、关联数据表名称和关联字段名称、是否可见或必填等属性)进行设置,并将通用对象模板的信息以应用程序可识别的格式(例如JSON格式)存储为通用对象,再将通用对象存储至对象数据库中,应用程序加载该通用对象模板;该通用对象模板包括客户端和服务器端;其数据处理过程如下
步骤1:用户通过客户端输入数据;
步骤2 :客户端对用户输入的数据进行处理,该处理包括将输入的数据分类为表单数据和请求信息对表单数据进行校验、将校验后的数据发送至服务器端;将请求信息发送至服务器端,并接收服务器端返回的处理结果;其中,校验是通过预先编写的校验文件进行校验,具体的,校验直接由相应的JS组件,结合自定义表单对象类型对应的正则表达式等特殊验证规则,对用户的操作进行控制和提示;
步骤3 :服务器端对客户端发送来的数据进行处理,该处理包括接收客户端发来的数据,将接收来的数据进行分类、对分类数据使用JavaScript进行封装、对封装后的数据及数据形成的关联关系进行存储、处理用户提交的请求信息(例如查询、搜索)并将处理结果显示在客户端页面;其中,数据包括若干个数据元素,每个数据元素包括数据类型、数据内容和数据属性。进一步的,为了提高表单的显示效率,建立二级缓存机制,即步骤3还包括解析客户端发送来的请求信息,并将解析后得到的处理结果进行缓存的步骤,具体过程如下当服务器端接收到客户端发送的请求信息时,首先判断该请求信息是否是首次接收,如果是首次接收,则服务器端解析该请求信息并返回处理结果,然后对处理结果进行标记,同时存储到服务器端的缓存内;如果不是首次接收的请求信息,即之前有接收到同样的请求信息时,则服务器端直接从缓存内取出对应处理结果,并返回给客户端。更进一步的,步骤2中客户端对用户输入的数据进行处理,还包括对服务器端返回的处理结果进行缓存的步骤,具体过程如下当客户端发送请求信息时,首先判断该请求信息是否是首次发送,如果是首次发送,则将该请求信息发送至服务器端,等待服务器端返回处理结果,当接收到服务器端返回的处理结果时,客户端首先建立缓存对象哈希表,并将该处理结果存储进去;如果不是首次发送的请求信息,即之前有发送过同样的请求信息时,客户端直接读取缓存对象哈希表,并将该处理结果显示出来,不再需要发送请求至服务器端。该方案中,客户端为处理结果建立缓存对象哈希表,可大大减少客户端重复请求,加快显示效果。其中,步骤3中,服务器端将接收来的数据进行分类,首先分为常规表单数据和用户自定义表单数据两大类;常规表单是客户端界面上原有的表单,常规表单数据是用户填写常规表单而获得的表单数据;用户自定义表单是客户端界面上没有的表单,用户扩展的自定义表单,用户自定义表单数据是用户填写该自定义表单而获得的表单数据。然后分别对常规表单数据和用户自定义表单数据再进行第二次分类,根据数据类型和数据内容细分为文本输入框(单行文本输入框/多行文本输入框)、数字输入框、电话传真输入框、日期、时间、单选按钮、单选下拉框、复选框。还可根据实际需要将表单数据进行组合。每个表单数据包含数据类型、数据内容(名称、内容等)和数据属性(是否可见、是否必填等)。对分类数据使用JavaScript进行封装,具体是使用上述分类后,用JavaScript封装成面向对象的基础组件,同时包含了对各类数据的输入验证和控制、事件处理等。对封装后的数据及数据形成的关联关系进行存储,包括对常规表单数据的存储和用户自定义表单数据的存储;其中对于常规表单数据的存储,是将数据类型和属性存储为一张表,将数据内容存储至另外一张表,并设置两张表之间的关联关系;对用户自定义表单数据的存储,具体过程如下用户自定义表单数据包括扩展字段的界面展现结构数据和数据本身两部分。数据本身包括数据类型、数据内容和数据属性。其中界面展现结构数据的描述设计是关键,它影响到信息解析组装的复杂度和表单界面展现的速度。本方法中,每个自定义表单的字段的界面展现结构数据采用JavaScript对象方式,在数据库中以JSON格式的字符串形式进行存储,将该界面展现结构数据存储至一张表中,存储的内容主要包括字段名称、类型编码、字段长度、关联数据表名称和关联字段名称、是否可见或必填等属性信息;将每个字段的数据内容以字符形式存储与另一张表,两张表的字段信息采用相同的列名,并一一对应,两张表通过扩展信息对应基础表名和用户ID建立关联关系。扩展字段的数据记录通过基础数据记录的ID建立关联关系。通过这种特殊关系,在进行数据查询时可大大提高查询效率。步骤3中,处理用户提交的请求信息并将处理结果显示在客户端页面,具体包括以下过程
过程1:当客户端发送自定义扩展信息显示请求时,服务器端解析请求参数,根据基础表表名和用户ID获取对应结构信息记录;
过程2 :自定义信息逻辑处理模块根据类型编码解析处理,并组装成客户端可直接使用的对象;
过程3 :服务器将各对象进行组合,以JSON格式的字符串形式输出给客户端。这种格式数据易于理解和检查,非常有利于编码和测试;
过程4 客户端获取服务器的应答数据,将JSON格式字符串转换成对象,直接提取表单对象数组集合,使用JSON动态构建表单对象,通过封装的JavaScript组件的Form类的Add()方法,将扩展字段信息和基础表各字段按顺序添加到同一个表单的子集中;
过程5 :客户端JavaScript组件对表单对象进行处理,根据子集对象的各种属性,动态创建HTML表单元素,按布局设置的字段顺序输出至页面。网页中基础字段和自定义字段以相同方式展现。本发明采用了一种独特的JavaScript对象方式来描述自定义扩展信息,将客户端对象转换成JSON格式字符串存储在数据库中。应用时服务器获取数据后进行解析,直接按客户端表单对象对应的文档格式输出,客户端无需转换处理即可识别对象,并与基础表单一起集成。这种方法充分利用了 JSON的特性,和XML格式存储和表现表单结构相比,既可减少数据传输量,提高传输效率,又可减少解析的复杂度,用JSON解析器可以快速解析。使用JSON动态构建表单对象,不必通过类来进行实例化,大大提高了编码效率和灵活度。该方法适用于由客户端脚本动态生成复杂生动的交互界面的Web管理系统,实现了基础表单与自定义扩展信息的无缝展现,大大增强了系统应用的灵活性,有效的满足了多用户在信息显示方面的个性化需求。而采用本方法中的基于对象的设计,充分利用JSON格式的特性,则可将自定义扩展信息以简单高效方式实现,并达到基础信息与自定义扩展信息的无缝集成显示效果。另外,本发明只需一次编码(建立一个通用对象模板),通过修改通用对象模板的配置即可满足各种用户的个性化需求,大大减少了系统二次开发工作量;实现了业务基础信息和自定义扩展信息在界面上的无缝集成显示;将自定义扩展字段按客户端组件可直接识别的对象形式进行组织,以JSON格式存储和传输,既可减少数据传输量,提高传输效率,又可减少解析的复杂度。编码简单而且非常灵活。在表单数据查询中,通过巧妙的设计,针对客户端分页请求仅提取需要展现的基础信息对应的自定义字段数据,减少了解析过程和数据传输量,大大提高了服务器数据查询效率和客户端数据展现效率,增强用户体验效果。该方法与用XML格式存储自定义表单信息相比,更适用于客户端脚本动态生成复杂生动的交互界面的富客户端Web管理系统。


图1是本发明的流程图。
具体实施例方式现结合附图和具体实施方式
对本发明进一步说明。本发明基于对象设计,充分利用JSON格式的特性,则可将自定义扩展信息以简单高效方式实现,并达到基础信息与自定义扩展信息的无缝集成显示效果。其设计思路如下
1.1首先新建一个表单自定义字段设计器(通用对象模板),对该表单自定义字段设计器的对象属性进行设置,并将其信息以JOSN格式存储为通用对象,再将通用对象存储至对象数据库中,应用程序加载该通用对象模板;该表单自定义字段设计器包括客户端的处理程序和服务器端的处理程序。该表单自定义字段设计器,可灵活扩展当前业务,满足多用户的个性化需求。用户根据业务需要,可在基础表单已实现的字段基础上,定义其他非同名的字段。字段类型可以为文本输入框(单行文本输入框/多行文本输入框)、数字输入框、电话传真输入框、日期、时间、单选按钮、单选下拉框、复选框等。对于复杂业务,可设计独立的组件类型供用户选择。可调整各字段的排列顺序进行表单布局设置。用户设置完自定义字段信息后,系统会根据不同字段类型,按系统设计的对象格式,将每个字段对应的类型和属性信息存储于自定义字段数据结构表中。对象的内容主要包括字段名称、类型编码、字段长度、关联数据表名称和关联字段名称、是否可见或必填等属性信息。自定义字段数据结构表的设计如下表
权利要求
1.一种基于对象的自定义扩展信息的方法,首先新建一个通用对象模板,对该通用对象模板的对象属性进行设置,并将通用对象模板的信息以应用程序可识别的格式存储为通用对象,再将通用对象存储至对象数据库中,应用程序加载该通用对象模板;该通用对象模板包括客户端和服务器端;其数据处理过程包括:步骤1:用户通过客户端输入数据;步骤2:客户端对用户输入的数据进行处理,该处理包括将输入的数据分类为表单数据和请求信息:对表单数据进行校验、将校验后的数据发送至服务器端;将请求信息发送至服务器端,并接收服务器端返回的处理结果;其中,校验是通过预先编写的校验文件进行校验;步骤3:服务器端对客户端发送来的数据进行处理,该处理包括接收客户端发来的数据,将接收来的数据进行分类、对分类数据使用JavaScript进行封装、对封装后的数据及数据形成的关联关系进行存储、处理用户提交的请求信息并将处理结果显示在客户端页面;其中,数据包括若干个数据元素,每个数据元素包括数据类型、数据内容和数据属性。
2.根据权利要求1所述的一种基于对象的自定义扩展信息的方法,其特征在于:步骤3中服务器端对客户端发送来的数据进行处理,还包括解析客户端发送来的请求信息,并将解析后得到的处理结果进行缓存的步骤,具体过程如下:当服务器端接收到客户端发送的请求信息时,首先判断该请求信息是否是首次接收,如果是首次接收,则服务器端解析该请求信息并返回处理结果,然后对处理结果进行标记,同时存储到服务器端的缓存内;如果不是首次接收的请求信息,即之前有接收到同样的请求信息时,则服务器端直接从缓存内取出对应处理结果,并返回给客户端。
3.根据权利要求2所述的一种基于对象的自定义扩展信息的方法,其特征在于:步骤2中客户端对用户输入的数据进行处理,还包括对服务器端返回的处理结果进行缓存的步骤,具体过程如下:当客户端发送请求信息时,首先判断该请求信息是否是首次发送,如果是首次发送,则将该请求信息发送至服务器端,等待服务器端返回处理结果,当接收到服务器端返回的处理结果时,客户 端首先建立缓存对象哈希表,并将该处理结果存储进去;如果不是首次发送的请求信息,即之前有发送过同样的请求信息时,客户端直接读取缓存对象哈希表,并将该处理结果显示出来。
4.根据权利要求1所述的一种基于对象的自定义扩展信息的方法,其特征在于:步骤3中,服务器端将接收来的数据进行分类,首先分为常规表单数据和用户自定义表单数据两大类;然后分别对常规表单数据和用户自定义表单数据再进行第二次分类,具体是根据数据类型和数据内容来划分。
5.根据权利要求4所述的一种基于对象的自定义扩展信息的方法,其特征在于:对封装后的数据及数据形成的关联关系进行存储,包括对常规表单数据的存储和用户自定义表单数据的存储;其中对于常规表单数据的存储,是将数据类型和属性存储为一张表,将数据内容存储至另外一张表,并设置两张表之间的关联关系;对用户自定义表单数据的存储,具体过程如下:过程1:用户自定义表单数据包括扩展字段的界面展现结构数据和数据本身两部分;数据本身包括数据类型、数据内容和数据属性;将每个自定义表单的字段的界面展现结构数据采用JavaScript对象方式,在数据库中以JSON格式的字符串形式进行存储,将该界面展现结构数据存储至一张表中;过程2:将每个字段的数据内容以字符形式存储与另一张表;两张表的字段信息采用相同的列名,并--对应;过程3:两张表建立关联关系:具体是通过扩展信息对应主表表名和用户ID建立关联关系,扩展字段的数据记录通过主表数据记录的ID建立关联关系。
6.根据权利要求1所述的一种基于对象的自定义扩展信息的方法,其特征在于:步骤3中,处理用户提交的请求信息并将处理结果显示在客户端页面,具体包括以下过程:过程1:当客户端发送自定义扩展信息显示请求信息时,服务器端解析请求信息参数,根据基础表表名和用户ID获取对应结构信息记录;过程2:根据类型编码解析处理,并组装成客户端可直接使用的JavaScript对象;过程3:服务器端将各JavaScript对象进行组合,以JSON格式的字符串形式输出给客户端;过程4:客户端获取服务器端的应答数据,将JSON格式字符串转换成对象,直接提取表单对象数组集合,使用JSON动态构建表单对象,通过封装的JavaScript组件将扩展字段信息和基础表各字段添加到同一个表单的子集中;过程5:客户端JavaScript组件对表单对象进行处理,根据子集对象的各种属性,动态创建HTML表单元素, 按布局设置的字段顺序输出至页面。
全文摘要
本发明涉及电子商务平台领域,具体涉及对表单进行自定义扩展处理的方法。一种基于对象的自定义扩展信息的方法,首先新建一个通用对象模板,该通用对象模板包括客户端和服务器端;其处理过程包括步骤1用户通过客户端输入数据;步骤2客户端对用户输入的数据进行处理,该处理包括将输入的数据分类为表单数据和请求信息;步骤3服务器端对客户端发送来的数据进行处理,该处理包括接收客户端发来的数据,将接收来的数据进行分类、对分类数据使用JavaScript进行封装、对封装后的数据及数据形成的关联关系进行存储、处理用户提交的请求信息并将处理结果显示在客户端页面。本发明应用于在WEB技术中,提高对表单进行自定义扩展处理的效率。
文档编号G06F9/44GK103077185SQ201210549919
公开日2013年5月1日 申请日期2012年12月18日 优先权日2012年12月18日
发明者曲建云, 余建成, 傅建记, 张屿 申请人:厦门雅迅网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1