首页 > 语言 > JavaScript > 正文

js 中rewrap-ajax.js插件实例代码

2024-05-06 15:25:24
字体:
来源:转载
供稿:网友

  最近写了一个JS插件,用圈内的话说叫造了个轮子,造的好与不好都不是自己说了算,关键还是大家用的好与不好。
  当然我自己也在使用,由于个人偏爱与喜好,所以未能借签其他Ajax框架的写法,目前的版本都是以版本一进行往上整合的成果,所以你想要全面了解内部的结构,可以先从版本一开始看起。

  现在我们说说整体的设计结构,版本一是好友收集整理的方法,基础的写法已经成型,调用nativeAjax方放即可,方法内部有三个参数,第一个为ajax的属性,第二个为成功的函数,第三个为错误的函数,具体如下:

nativeAjax(postOption,function(data){ // 3.1、请求成功回调 console.log(data);},function(error){ // 3.2、请求失败回调,返回HTTP状态码 console.log(error);});

  基于以上的设计模式,然后给他进行二次封装,首先ajax的服务属性固定不变,那么我们可以把所有的ajax properties绑定到对象上即可,如果直接绑定在指定的对象上,其实我们只管给参数和拿参数,省了很多事情,这个过程简单了不少,那么灵活性就不会很高。如果我们想自己在内部进行封装,那么就要求高灵活性和可复用属性,所以我把属性放在了function函数里面,于是在内部使用this指针绑定ajax属性进行调用,同时可以在内部进行插件的再次封装,这是我所理解的这个版本的内部结构的设计模式。

  版本二rewrap-ajax调用的外部结构类似jq的JQ.fn属性,是以链式结构的对象属性方法来使用的,所以我们在<script>内部使用wrap.service(`ajax`, foo)即可,然后foo函数内部具有ajax的服务属性,我们只要把ajax的属性绑定到this指针上即可,ajax的get分别有URL,TYPE,SUCCESS,ERROR四个属性,并且这4个属性都支持大小写的格式。然后this.success,this.error是二个方法,分别是调用成功的数据请求和调用错误状态的捕获,并且this.success和this.error都拥有一个参数。

wrap.service('ajax',function ajax() { // 支持大小写 this.URL = "query.do" this.TYPE = "GET" this.SUCCESS = function(data) {  var val = data;  console.log(val) }; this.ERROR = function(err) {  console.log(err) };});

  版本三rewrap-ajax保持版本二的外部结构和this写法,this指针上多了二个功能,分别是props和methods方法,其中props方法内部return返回的结构为键值对的数据格式,具有多个state...状态,比如:

return {  State_01: [{ class : ‘.main', static: 'color', tip: 'message', content: 'container'}],  State_02: [{ class : ‘.main', static: 'color'}],  State_03: [{ class : ‘.main'}]}

  其中每一个state状态对应的value值必须是使用数组[]保存,数组内部必须是一个对象{},对象的属性以常规格式要求,对象对应的value必须是一个dom节点能访问的Element元素(或node节点,class类,id,tag标签等等)。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选