一种基于数据层的改进ajax性能的方法技术

技术编号:14372023 阅读:84 留言:0更新日期:2017-01-09 17:51
本发明专利技术公开了一种基于数据层的改进ajax性能的方法,它包括初始化步骤、任务迁徙步骤、动画效果步骤、参数收集,数据层为每个任务建立一张json数组表,维护每个任务的状态,控制任务迁移;客户调用send函数时,将actionprompt标志设置为true,数据层显示等待动画,和提示文字;在IE中使用jquery方法,将XML字符串转换为jquery对象。本发明专利技术提升了ajax对浏览器的兼容性,同时在等待服务器响应的时候通过动画和文字信息来提示用户,告知用户当前任务的状态,并且用户可以任意组合参数,在客户端可以制作一个数据就发送一个请求,不需要将所有的数据都制作完再发送。

【技术实现步骤摘要】

本专利技术涉及一种基于数据层的改进ajax性能的方法
技术介绍
客户端和服务端的通信有下面几种方法:Form表单的GET方法,只能在<form>元素中使用,参数编码到url地址中,长度有限Form表单的POST方法,只能在<form>元素中使用,参数在httpheader中发给服务器,数据量可以很大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字符串出错的情况下,在ajaxerror属性中注册回调函数,在这个函数中略过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所示,所述的任务迁徙步本文档来自技高网...
一种基于数据层的改进ajax性能的方法

【技术保护点】
一种基于数据层的改进ajax性能的方法,其特征在于:包括初始化步骤、任务迁徙步骤和动画效果步骤包括以下步骤:所述的初始化步骤包括以下子步骤:S11.创建数据层,采用命名空间实现,所述的命名空间采用json语法实现;S12. 数据层将每个ajax视为一个任务,并为其赋予一个任务编号;其中,对于每一个任务,数据层建立一张表格,维护每个任务的状态;S13.数据层提供一个函数接口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。...

【技术特征摘要】
1.一种基于数据层的改进ajax性能的方法,其特征在于:包括初始化步骤、任务迁徙步骤和动画效果步骤包括以下步骤:所述的初始化步骤包括以下子步骤:S11.创建数据层,采用命名空间实现,所述的命名空间采用json语法实现;S12.数据层将每个ajax视为一个任务,并为其赋予一个任务编号;其中,对于每一个任务,数据层建立一张表格,维护每个任务的状态;S13.数据层提供一个函数接口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。2.根据权利要求1所述的一种基于数据层的改进ajax性能的方法,其特征在于:所述的json对象的结构包括:Actionid:由数据层datalayer自动生成,表示任务编号;Actionstatus:表示任务的状态,包括创建、等待、终止、错误;Actionname:表示任务的名称;Actionprompt:表示是否出现文字和动画提示请求在处理中;Maximumwaitingtime:表示一个任务最长的等待时间,超出这个等待时间而服务端没有回应,数据层将终止任务运行;Callbacksuccess,表示用来注册成功时候的回调函数;Callbackfail,表示用来注册任务失败时的回调函数;Waitingtip,当等待服务端回应的时候,给予用户的提示;Url,指向服务端的地址,以所述的Actionname加上json后缀表示;Atype,表示请求类型Multi,表示能否重复请求的状态,当设置为false时候,禁止改同一个任务在状态处于create或者w...

【专利技术属性】
技术研发人员:邱东
申请(专利权)人:四川天邑康和通信股份有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1