基于jquery的ajax方法的二次封装

来源:互联网 发布:大学生网络理财 编辑:程序博客网 时间:2024/05/15 01:06

    我并不是专业的前端开发攻城狮,所以,这篇文章的水平,可能是比较低的,里面一些观点,可能都比较可笑。如果有疏漏或错误的地方,希望大家能指出来。如果文章的价值不大,也希望大牛能指点一二,在此先谢谢了。

    在做实际开发过程中,由于后台只提供接口,不管是android、ios还是H5开发,都是通过调用同一套后台接口去获取数据,android和ios是通过各自的系统提供的http请求方法去做数据请求的。而H5端,我是采用了ajax的方法来实现加载的,抛弃了类似jsp这样的后端渲染方案。我采用的是jquery提供的ajax方法来实现数据加载的。jquery提供的ajax方法,已经非常简洁实用了。但为何还要做二次封装呢?

    在实际项目过程中,刚开始,我并没有这种想法,我认为jquery提供的ajax方法已经够简单了。但项目大概进展了一半的时候,突然发现,写的ajax方法,代码挺多都是重复的,但这个时候,并没有意识到我应该做些什么。直到一天,后台接口发现所有的请求,都缺少一个关键参数,这个时候,我的H5端的所有的ajax请求,都得一个一个手动去添加参数。没办法,只能一个一个手动去添加了。但是,这个时候我就在考虑一个问题,假如后期后台又发现缺少一个关键参数,我该怎么办?难道让我再一个一个请求方法去手动添加吗?那还不得累死我啊?另外,如果有个疏漏,漏掉一两个请求方法,那回头排查问题,所需的时间,也不少。能不能想个简单的办法,如果有修改,我改动一处,所有的请求都同步修改过来呢?这个时候,我想起了我在做android开发中,经常会做一些二次封装,也许各个项目不同,但一个项目中,我只需要在一个地方控制一下,就可以做到全局同步修改过来。基于这个想法,我想尝试一下,可以不可以对ajax做一下二次封装。

    思路是有了,但我之前并没有做过H5端的开发,至于这个思路是否可行,心里还没有底。但如果不尝试一下,又怎么知道可行不可行呢?大不了就是浪费一些时间罢了。在这个想法下,于是开始了我的ajax二次封装之路。

    当然,既然是基于jquery的ajax方法的二次封装,其主要内容还是jquery的ajax方法,所有的请求,最终也是走ajax方法。我只是想做一些统一处理,比如,添加一些统一的请求参数,对响应异常,做一下统一处理,方便我对请求做统一处理,同时也方便统一修改。我在封装方法里,在请求开始前,显示加载效果,在请求结束(不管是请求成功还是请求出错)的时候,结束掉加载效果。那么,我的所有请求,都会显示一个统一的加载效果,同时,又不用在每个请求前,添加显示加载效果的代码、在加载结束后结束加载效果的代码。在请求Header里,统一添加需要的请求头参数。也可以在请求data里,统一添加请求参数。在响应成功方法里,除了结束掉加载效果外,我还对返回的json数据做了一次统一处理,异常响应在这里就可以处理掉,不需要业务层每个接口都单独处理......由于各个项目的需求都不同,所以,每个项目对ajax的封装可能不会完全一致,但都大同小异。当然,具体封装还需要根据具体的业务需求,灵活处理。另附上我的代码片段


    也许已经有大牛做了这样的工作了,但由于我的技术水平不够,不足以阅读其他大作,所以,这个封装,并没有参考其他的文章,完全是被实际的业务需求给逼出来的,假如没有业务变更,可能我也不会想到做这样的工作。但不管如何,这也是我的一次尝试。如果有更好的方案,欢迎一起探讨。希望各位看官不吝赐教,谢谢大家!

0 0
原创粉丝点击