公开/公告号CN106293714A
专利类型发明专利
公开/公告日2017-01-04
原文格式PDF
申请/专利权人 四川天邑康和通信股份有限公司;
申请/专利号CN201610619234.3
发明设计人 邱东;
申请日2016-07-29
分类号G06F9/44;
代理机构成都金英专利代理事务所(普通合伙);
代理人袁英
地址 610000 四川省成都市大邑县晋原镇工业大道198号
入库时间 2023-06-19 01:14:33
法律状态公告日
法律状态信息
法律状态
2020-01-14
授权
授权
2017-02-01
实质审查的生效 IPC(主分类):G06F9/44 申请日:20160729
实质审查的生效
2017-01-04
公开
公开
技术领域
本发明涉及一种基于数据层的改进ajax性能的方法。
背景技术
客户端和服务端的通信有下面几种方法:
Form表单的GET方法,只能在<form>元素中使用,参数编码到url地址中,长度有限
Form表单的POST方法,只能在<form>元素中使用,参数在http header中发给服务器,数据量可以很大
Cookie,浏览器只是提供有限的接口,用于session会话场合。其它领域并不适合
Cgi方式,数据嵌入在页面中一起返回给浏览器,完全不适合插件开发。
以及Ajax方式,其特点在于,html页面可以在任何地方使用javascript向服务端发送ajax请求,同时注册一个回调函数。Ajax是异步的,发送完ajax请求后页面工作就结束,不用同步等待服务端的数据。当浏览器收到服务器返回的数据后,浏览器就会自动调用刚才注册的回调函数。在回调函数中,程序员可以做任何事情,比如将数据显示在html之中。
如果插件需要和服务端通信,Ajax是最好的选择。因为从设计的角度讲,它将html和数据完全分开了,调试方便,功能强大,你可以在回调函数中做任何事情。
如果只是发送少数几个数据请求,直接调用ajax的POST,或GET请求就可以了。但是如果要发送上百个请求,在复杂的插件中,这是完全可能的,直接调用就出现一些问题,我们需要一个数据层,封装ajax,提供更强的通信功能。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于数据层的改进ajax性能的方法。
本发明的目的是通过以下技术方案来实现的:一种基于数据层的改进ajax性能的方法,包括初始化步骤、任务迁徙步骤、动画效果步骤,参数收集包括以下步骤:
所述的初始化步骤包括以下子步骤:
S11.创建数据层DataLayer,采用命名空间实现,所述的命名空间采用json语法实现;
S12.数据层将每个ajax视为一个任务,并为其赋予一个任务编号;其中,对于每一个任务,数据层建立一张表格,维护每个任务的状态;
S13.数据层DataLayer提供一个函数接口send,参数为json对象;
所述的任务迁徙步骤包括以下子步骤:
S21:数据层收到客户端向服务端发送的请求后,为任务分配一个id号,将任务状态设置为新建created;
S22:收集参数,当参数收集完毕,向服务端发送ajax请求,将任务状态设置为waiting,同时超时计数器开始计数;
S23:当超时计数器计数结束之前,收到服务端返回的结果后,将任务状态设置为finished;当超时计数器计数结束服务端仍然没有返回结果,任务将被终止,从waiting状态直接进入aborted状态;
所述的嵌入动画效果步骤为:
S31.使用absoulte布局,在Z轴最顶端加入div元素,div的visibility属性设置为true,嵌入一个等待动画图片;
S32.客户调用send函数时,数据层将actionprompt设置为true,数据层将显示等待动画,如果actionprompt为false,将div的visibility属性设置为false。
所述的json对象的结构包括:
Actionid:由数据层datalayer自动生成,表示任务编号;
Actionstatus:表示任务的状态,包括创建、等待、终止、错误;
Actionname:表示任务的名称;
Actionprompt:表示是否出现文字和动画提示请求在处理中;
Maximumwaitingtime:表示一个任务最长的等待时间,超出这个等待时间而服务端没有回应,数据层将终止任务运行;
Callbacksuccess,表示用来注册成功时候的回调函数;
Callbackfail,表示用来注册任务失败时的回调函数;
Waitingtip,当等待服务端回应的时候,给予用户的提示;
Url,指向服务端的地址,以所述的Actionname加上json后缀表示;
Atype,表示请求类型
Multi,表示能否重复请求的状态,当设置为false时候,禁止改同一个任务在状态处于create或者waitting时候反复发送。
所述的表格结构包括
Actionid:表示任务编号;
Actionname:表示任务的名称;
Actionstatus:表示任务的状态,包括创建、等待、终止、错误;
ajaxobj:ajax引用实例;
multi:表示能否重复请求的状态,当设置为false时候,禁止改同一个任务在状态处于create或者waitting时候反复发送:
injectedStatus:尾部是否置入特殊动作。
它还包括一个浏览器版本判断步骤:在每次任务状态切换之后打印任务信息之前,判断浏览器版本是否为console.log()函数所支持的版本,如果支持则调用console.log()函数进行打印,否则不调用。
在所述的浏览器版本判断步骤之后,还包括一个解析错误状态的转换步骤:ie浏览器解析服务端返回的xml字符串出错的情况下,在ajax error属性中注册回调函数,在这个函数中略过http头,定位到xml数据体,将其转换为jquery对象,将返回至客户端。
所述的参数收集包括以下步骤:
S1.在数据层这个json对象中加入属性currentActionID,指向任务表中正在处理的任务id;
S2.任务表中增加一列injectedStatus,表示是否已经向任务处理动作的末尾植入了一个特殊的动作;
S3.然后将任务状态设置为waiting即可;当服务器返回数据时候,在回调函数中,数据层将调用用户注册的回调函数,然后将任务状态设置为finished或者error;
S4.当用户调用send函数接口发送时候,数据层判断currentActionID状态,如果是finished,或error,aborted,waiting表明没有新建的任务,
S5.数据层创建一个新任务,状态设置为created,将injectedStatus列置为true,然后执行参数收集最核心的一个动作,调用时间处理函数,
S6.将时间处理函数添加到事件队列末尾,同时将超时时间设置为0秒;
S7.这样一系列的send函数调用一结束时,这个时间处理函数将被调用,请求将被发送出去。
本发明的有益效果是:一种基于数据层的改进ajax性能的方法,提升了ajax对IE浏览器的兼容性,弥补了IE浏览器对XML数据解析的不正确的缺点,同时在等待服务器响应的时候提供一个动画提示用户,告知用户当前任务的状态,并且用户可以任意组合参数,数据层自动判断参数是否填写完毕,然后发出请求,使编程接口更加友好,在客户端可以制作一个数据就发送一个请求,不需要将所有的数据都制作完再发送。
附图说明
图1为状态迁移图;
具体实施方式
下面结合附图进一步详细描述本发明的技术方案:一种基于数据层的改进ajax性能的方法,包括初始化步骤、任务迁徙步骤、动画效果步骤包括以下步骤:
所述的初始化步骤包括以下子步骤:
S11.创建数据层DataLayer,采用命名空间实现,所述的命名空间采用json语法实现;
S12.数据层将每个ajax视为一个任务,并为其赋予一个任务编号;其中,对于每一个任务,数据层建立一张表格,维护每个任务的状态;
S13.数据层DataLayer提供一个函数接口send,参数为json对象;
如图1所示,所述的任务迁徙步骤包括以下子步骤:
S21:数据层收到客户端向服务端发送的请求后,为任务分配一个id号,将任务状态设置为新建created;
S22:收集参数,当参数收集完毕,向服务端发送ajax请求,将任务状态设置为waiting,同时超时计数器开始计数;
S23:当超时计数器计数结束之前,收到服务端返回的结果后,将任务状态设置为finished;当超时计数器计数结束服务端仍然没有返回结果,任务将被终止,从waiting状态直接进
入aborted状态;
所述的嵌入动画效果步骤为:
S31.使用absoulte布局,在Z轴最顶端加入div元素,div的visibility属性设置为true,嵌入一个等待动画图片;
S32.客户调用send函数时,数据层将actionprompt设置为true,数据层将显示等待动画,如果actionprompt为false,将div的visibility属性设置为false。
通过上传自定义的字符串来决定显示的文字信息;
同时在等待服务器响应的时候提供一个动画和文字信息来提示用户,告知用户当前任务的状态,
所述的json对象的结构包括:
Actionid:由数据层datalayer自动生成,表示任务编号;
Actionstatus:表示任务的状态,包括创建、等待、终止、错误;
Actionname:表示任务的名称;
Actionprompt:表示是否出现文字和动画提示请求在处理中;
Maximumwaitingtime:表示一个任务最长的等待时间,超出这个等待时间而服务端没有回应,数据层将终止任务运行;
Callbacksuccess,表示用来注册成功时候的回调函数;
Callbackfail,表示用来注册任务失败时的回调函数;
Waitingtip,当等待服务端回应的时候,给予用户的提示;
Url,指向服务端的地址,以所述的Actionname加上json后缀表示;
Atype,表示请求类型
Multi,表示能否重复请求的状态,当设置为false时候,禁止改同一个任务在状态处于create或者waitting时候反复发送。
表1
如表1所示,所述的表格结构包括:
Actionid:表示任务编号;
Actionname:表示任务的名称;
Actionstatus:表示任务的状态,包括创建、等待、终止、错误;
ajaxobj:ajax引用实例;
multi:表示能否重复请求的状态,当设置为false时候,禁止改同一个任务在状态处于create或者waitting时候反复发送:
injectedStatus:尾部是否置入特殊动作。
它还包括一个浏览器版本判断步骤:在每次任务状态切换之后打印任务信息之前,判断浏览器版本是否为console.log()函数所支持的版本,如果支持则调用console.log()函数进行打印,否则不调用。
在所述的浏览器版本判断步骤之后,还包括一个解析错误状态的转换步骤:ie浏览器解析服务端返回的xml字符串出错的情况下,在ajax error属性中注册回调函数,在这个函数中略过http头,定位到xml数据体,将其转换为jquery对象,将返回至客户端,
所述的浏览器版本判断步骤提升了ajax对IE浏览器的兼容性和解析错误状态的转换步骤弥补了IE浏览器对XML数据解析的不正确的缺点。
所述的参数收集包括以下步骤:
S1.在数据层这个json对象中加入属性currentActionID,指向任务表中正在处理的任务id;
S2.任务表中增加一列injectedStatus,表示是否已经向任务处理动作的末尾植入了一个特殊的动作;
S3.然后将任务状态设置为waiting即可;当服务器返回数据时候,在回调函数中,数据层将调用用户注册的回调函数,然后将任务状态设置为finished或者error;
S4.当用户调用send函数接口发送时候,数据层判断currentActionID状态,如果是finished,或error,aborted,waiting表明没有新建的任务,
S5.数据层创建一个新任务,状态设置为created,将injectedStatus列置为true,然后执行参数收集最核心的一个动作,调用时间处理函数,
S6.将时间处理函数添加到事件队列末尾,同时将超时时间设置为0秒;
S7.这样一系列的send函数调用一结束时,这个时间处理函数将被调用,请求将被发送出去。
因为当下一个send被调用时,因injectedStatus为true,特殊动作不会再植入到末尾使得用户可以任意组合参数,数据层自动判断参数是否填写完毕,然后发出请求,使编程接口更加友好,在客户端可以制作一个数据就发送一个请求,不需要将所有的数据都制作完再发送。
机译: 一种基于纠错码的加密系统的性能改进方法,通过对一部分编码数据进行打孔或重复处理,使其比现有的加密系统具有更强的外部攻击性能,并提供了一种装置
机译: (54)标题:改善柔性版印刷板的印刷性能的方法(57)摘要:提供了一种由感光印刷坯料制造浮雕图像印刷元件的方法。用激光烧蚀具有设置在至少一个光可固化层上的激光可烧蚀层的光敏印刷坯料,以形成原位掩模。然后通过原位掩模使印刷坯料暴露于至少一种光化辐射源,以选择性地交联和固化可光固化层的部分。空气在至少一个光固化层中的扩散在曝光步骤中受到限制,并且优选在曝光步骤中改变至少一种光化辐射源的光的类型,功率和入射角中的至少一种。所得的浮雕图像包括多个点,并且产生了多个点的点形状,该点形状高度耐受用于在瓦楞纸板上印刷的印刷槽纹。
机译: 本申请支持交换层安全传输的数据处理方法和交换设备,于2010年12月20日提交给中国专利局,申请号为201010596665.5,发明名称支持“链路层安全传输,本申请要求基于中国专利申请是一种“数据处理方法”和“将设备切换到”,并通过公开内容整体并入本文。