JS之——回调函数的简单应用(插曲)
来源:互联网 发布:淘宝买家信息收集器 编辑:程序博客网 时间:2024/06/09 03:23
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46274893
JS无疑是前端页面与服务端交互数据的强大语言,那么如何利用JS的回调函数来封装JS的网络请求呢,本文就来简单说明这一问题
一、创建一个index.html文件
页面内容随便定义,重点是要引入如下自定义的两个js文件,一个是constants.js一个是validate.js
二、创建constants.js文件
/** * Created by liuyazhuang on 2015/5/29. * 此文件封装了一些访问网络请求的url, * 封装了一些回调函数的用法和一些常量 *///lyz的服务器var base_url_lyz_server = "http://192.168.254.109:10002/tea";//lyz图片var base_url_lyz_img_server = "http://192.168.254.109:10002";//postvar REQUEST_TYPE_POST = "POST";//GETvar REQUEST_TYPE_GET = "GET";//拼接字符串//uri除了基本路径以外的具体接口路径//isValidate标志是否需要登录,true需要登录,false不需要登录function getUrl(uri, isValidate){ var url = base_url_lyz_server+ uri; if(isValidate){ var token = getValueFromLocalStorage("token"); var username = getValueFromLocalStorage("phone"); url = url+"?access_token="+token+"&mobile_user_name="+username; } return url;}//图片的路径function getImgUrl(uri){ return base_url_native_img_server + uri;}//获取localStorage中的某个值function getValueFromLocalStorage(key){ return localStorage.getItem(key) ? localStorage.getItem(key) : "";}//移出指定的keyfunction removeValuesFromLocalStorage(keys){ for(var i = 0; i < keys.length; i++){ localStorage.removeItem(keys[i]); }}/** * 封装的ajax请求数据 * url:请求的路径 * params:参数 * isValidate:是否需求登录验证 * type:访问类型:"POST","GET", * method:回调的方法名称 */function requestDataByAjax(url, isValidate, params, type, method){ $.ajax({ type: type, url: getUrl(url, isValidate), cache: false, async: false, data:{ "parameter":params }, success: function (result) { //回调函数解析数据 method(result); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert("错误:" + textStatus); } });}在这个js文件中
划线部分是网络请求返回成功数据后要调用的回调函数名称,所有与网络请求相关的业务都可以调用这个方法,服务端返回的数据解析只需交给相应的回调函数即可,这既体现了代码的封装性,又大大提高了代码的维护性。
三、创建validate.js
//请求地址requestDataByAjax("/website/address/default_address",true, JSON.stringify({"mobile_id": userId}), REQUEST_TYPE_POST, validate_parseAddressResult);//回调方法解析地址数据function validate_parseAddressResult(result){ //数据返回正常 console.log(result); if(result.code == 1001){ var message = result.message; $("#appointment_name").text(message.name); $("#appointment_phone").text(message.phone); $("#appointment_address").text(message.address); localStorage.setItem("sendName",message.name); localStorage.setItem("sendPhone",message.phone); localStorage.setItem("sendAddress",message.address); }}这个js文件中
划线部分的名称是一样的,调用constants.js的requestDataByAjax方法将方法function validate_parseAddressResult(result)的名称名称作为参数,当网路请求成功返回数据后,就会自动调用function validate_parseAddressResult(result)这个方法来解析数据了
四、测试
0 0
- JS之——回调函数的简单应用(插曲)
- Python3之爬虫中回调函数的简单应用
- JS回调函数的应用
- js 回调函数的简单使用
- 回调函数的简单应用
- 回调函数的简单应用
- 回调函数简单应用
- JS之——比较字符串大小(插曲)
- js回调函数的理解及简单实例
- C#回调函数的简单讲解与应用例子(最简单讲解,大神绕道)
- js的回调函数
- js的回调函数
- Tomcat之——Tomcat运行php的简单方法(插曲)
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- 回调函数的应用
- JS笔记 —— 回调函数
- cocos2d-x 3.0 场景切换特效汇总
- dict字典
- static关键字理解
- ScrollView嵌套GridView的解决办法
- global全局变量
- JS之——回调函数的简单应用(插曲)
- Android字符串进阶之三:字体属性及测量(FontMetrics)
- win7(32位)配置cocos2d-x
- SQLite3 使用总结
- 面试题19:二叉树的镜像
- glob获得目录下文件
- 微信运营笔记
- 钟表维修管理系统技术解析 维修记录(五)
- 三层架构与MVC