网站建设栏目分析,织梦网站栏目无法生成,珠宝行网站建设方案,查询域名一、XMLHttpRequest基本使用
XMLHttpRequest#xff08;XHR#xff09;对象用于与服务器交互。 二、XMLHttpRequest-查询参数
语法: 用 符号分隔的键/值对列表 三、XMLHttpRequest-数据提交 核心步骤 : 1. 请求头 设置 Content-Type 2. 请求体 携带 符合要求 的数…一、XMLHttpRequest基本使用
XMLHttpRequestXHR对象用于与服务器交互。 二、XMLHttpRequest-查询参数
语法: 用 符号分隔的键/值对列表 三、XMLHttpRequest-数据提交 核心步骤 : 1. 请求头 设置 Content-Type 2. 请求体 携带 符合要求 的数据 四、Promise 定义Promise 对象用于表示一个异步操作的最终完成或失败及其结果值。 概念: 管理异步操作的对象可以获取成功或失败的结果 使用步骤: 1. 实例化Promise对象 2. 执行异步操作并传递结果 3. 获取结果 五、Promise的三种状态 1. 待定pending : 初始状态 既没有被兑现也没有被拒绝 2. 已兑现fullfilled : 意味着操作 成功 完成 3. 已拒绝rejected : 意味着操作 失败 注意: Promise对象一旦被 兑现/拒绝 就是 已敲定 了状态 无法再改变 !DOCTYPE html
html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title认识-Promise/title
/headbodyh2认识-Promise/h2script/*** Promise* 浏览器的内置对象管理异步操作接收成功或失败的结果* */// 基于一个对象 可以写.then(正常结果) .catch(异常结果)// 实例化一个Promise对象 才能抛出结果// const p new Promise(函数)const p new Promise((resolve, reject) {// Promise 的结果 不能改变reject(失败了嘤嘤嘤)resolve(成功了哈哈哈哈)})p.then(res{console.log(res)}).catch(error{console.log(error)})/script
/body/html 六、例.使用 PromiseXHR 获取省份列表 !DOCTYPE html
html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title案例-使用 PromiseXHR 获取省份列表/title
/headbodyh2案例-使用 PromiseXHR 获取省份列表/h2button classsuccess请求成功/buttonbutton classerr请求异常/buttondiv classbox/divscript// 把xhr和Promise结合 → then 和 catch 拿结果const p new Promise((resolve, reject) {const xhr new XMLHttpRequest()xhr.open(get, https://hmajax.itheima.net/api/province)xhr.addEventListener(loadend, function() {// console.log(xhr.response)// 如果成功了resolve 否则reject → if// [200 -300) 都是成功否则就是失败if (xhr.status 200 xhr.status 300) {// resolve(真实数据-不能json字符串)resolve(JSON.parse(xhr.response))} else {reject(xhr.response)}})xhr.send()})p.then(res {console.log(成功的结果, res)}).catch(error {console.log(失败的结果, error)})/script
/body/html 七、封装-简易axios-获取省份列表
!DOCTYPE html
html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title封装-简易axios函数-获取省份列表/title
/headbodyh2封装-简易axios-获取省份列表/h2div classbox/divscript/*** 封装-简易axios-获取省份列表* */// promise对象.then().catch() -- 上午最后的例子// aixos().then().catch()// 为什么axios() promise对象 → 说明函数调用拿到的就是Promise对象// 函数基本语法函数调用会拿到啥 → 函数的返回值 → 封装函数返回值是Promise对象// 返回值是Promise对象 负责干啥 → 发类似axios一样的网络请求拿数据 → xhr// axios({url: }).then().catch()function HMAxios(config) {// console.log(config)return new Promise((resolve, reject) {const xhr new XMLHttpRequest()// xhr.open(请求方法, url)xhr.open(config.method || get, config.url)xhr.addEventListener(loadend, function() {// console.log(xhr.response)if (xhr.status 200 xhr.status300) {resolve(JSON.parse(xhr.response))} else {reject(xhr.response)}})xhr.send()})}// 请求省份HMAxios({url: https://hmajax.itheima.net/api/province,// method: get}).then(res {console.log(res)}).catch(error{console.log(error)})// 请求新闻HMAxios({url: https://hmajax.itheima.net/api/news,method: get}).then(res{console.log(res)})/script
/body/html
八、封装-简易axios函数-获取地区列表
!DOCTYPE html
html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title封装-简易axios函数-获取地区列表/title
/headbodyh2封装-简易axios函数-获取地区列表/h2div classbox/divscript/*** 封装-简易axios函数-获取地区列表*/// https://hmajax.itheima.net/api/areafunction HMAxios (config) {return new Promise((resolve, reject) {const xhr new XMLHttpRequest()// xhr.open(请求方法, 请求地址)// config.url 原来默认的地址 查询参数if (config.params) {const params new URLSearchParams(config.params) // 类似于对象 请求地址要字符串格式// console.log(params)const str params.toString()// console.log(str)config.url config.url ? str// console.log(config.url)}xhr.open(config.method || get, config.url)xhr.addEventListener(loadend, function() {// console.log(xhr.response)if (xhr.status200xhr.status300) {resolve(JSON.parse(xhr.response))} else {reject(xhr.response)}})xhr.send()})}HMAxios({url: https://hmajax.itheima.net/api/area,// method: xx,params: {pname: 河北省,cname: 唐山市}}).then(res{console.log(res)})HMAxios({url: https://hmajax.itheima.net/api/lol/search,// params: {// q: 安妮// }}).then(res{console.log(res)})/script
/body/html
九、封装-简易axios函数-注册用户
!DOCTYPE html
html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title封装-简易axios函数-注册用户/title
/headbodyh2封装-简易axios函数-注册用户/h2button classbtn注册用户/buttonscript/*** 封装-简易axios函数-注册用户*/function HMAxios(config) {return new Promise((resolve, reject) {const xhr new XMLHttpRequest()// config.url 原来默认的地址 查询参数if (config.params) {const params new URLSearchParams(config.params) // 类似于对象 请求地址要字符串格式// console.log(params)const str params.toString()// console.log(str)config.url config.url ? str// console.log(config.url)}xhr.open(config.method || get, config.url)xhr.addEventListener(loadend, function() {// console.log(xhr.response)if (xhr.status 200 xhr.status 300) {resolve(JSON.parse(xhr.response))} else {reject(JSON.parse(xhr.response))}})// 有body参数(data)send(json格式的data数据) 否则 send()if (config.data) {xhr.setRequestHeader(content-type, application/json)xhr.send(JSON.stringify(config.data))} else {xhr.send()}})}HMAxios({url: https://hmajax.itheima.net/api/register,method: post,data: {username: daqiang8888,password: 123456}}).then(res {console.log(res)}).catch(error {console.log(error)})/script
/body/html
十天气预报 主要代码
// 默认渲染 - 天气 → 北京
function getWeather(city){// 发请求拿数据 → 渲染HMAxios({url: https://hmajax.itheima.net/api/weather,params: {city}}).then(res{console.log(res.data)const data res.data// 日期document.querySelector(.title).innerHTML span classdate${data.date}/spanspan classcalendar农历nbsp;span classdateLunar${data.dateLunar}/span/span// 替换城市名document.querySelector(.area).innerHTML data.area// 今日温度document.querySelector(.weather-box).innerHTML div classtem-boxspan classtempspan classtemperature${data.temperature}/spanspan°/span/span/divdiv classclimate-boxdiv classairspan classpsPm25${data.psPm25}/spanspan classpsPm25Level${data.psPm25Level}/span/divul classweather-listliimg src${data.weatherImg} classweatherImg altspan classweather${data.weather}/span/lili classwindDirection${data.windDirection}/lili classwindPower${data.windPower}/li/ul/div// 一周天气const week data.dayForecastconsole.log(week)document.querySelector(.week-wrap).innerHTML week.map(item {return li classitemdiv classdate-boxspan classdateFormat${item.dateFormat}/spanspan classdate${item.date}/span/divimg src${item.weatherImg} alt classweatherImgspan classweather${item.weather}/spandiv classtempspan classtemNight${item.temNight}/span-span classtemDay${item.temDay}/spanspan℃/span/divdiv classwindspan classwindDirection${item.windDirection}/spanspan classwindPowerlt;${item.windPower}/span/div/li}).join()})
}// 有参数 → 城市id → 北京城市id110100 string
getWeather(110100)// 用户输入 → 请求对应的城市 → 渲染城市// 引入库文档中搜索函数使用 _.xx() → 返回值
// _.debounce(函数, 延迟时间)
// 这里是函数表达式写法 const fn 匿名函数 → 顺序先定义后使用
const fn _.debounce(function() {// console.log(11)HMAxios({url: https://hmajax.itheima.net/api/weather/city,params: {city: document.querySelector(.search-city).value}}).then(res {console.log(res.data)document.querySelector(.search-list).innerHTML res.data.map(item {// data-code 点击的时候按code值发请求渲染城市天气return li classcity-item data-code${item.code}${item.name}/li}).join()})
}, 800)document.querySelector(.search-city).addEventListener(input, fn)// 用户选中某个城市发请求 → 得到这个城市的天气 → 渲染天气 → getWeather(城市id)
document.querySelector(.search-list).addEventListener(click, function(e) {if (e.target.classList.contains(city-item)) {getWeather(e.target.dataset.code)}
})
文章转载自: http://www.morning.xskbr.cn.gov.cn.xskbr.cn http://www.morning.npfrj.cn.gov.cn.npfrj.cn http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn http://www.morning.phcqk.cn.gov.cn.phcqk.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.fthcq.cn.gov.cn.fthcq.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.dnycx.cn.gov.cn.dnycx.cn http://www.morning.xhlpn.cn.gov.cn.xhlpn.cn http://www.morning.zqkms.cn.gov.cn.zqkms.cn http://www.morning.ttaes.cn.gov.cn.ttaes.cn http://www.morning.tnjff.cn.gov.cn.tnjff.cn http://www.morning.burpgr.cn.gov.cn.burpgr.cn http://www.morning.skrh.cn.gov.cn.skrh.cn http://www.morning.mxptg.cn.gov.cn.mxptg.cn http://www.morning.hkysq.cn.gov.cn.hkysq.cn http://www.morning.rxrw.cn.gov.cn.rxrw.cn http://www.morning.kgmkl.cn.gov.cn.kgmkl.cn http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.nflpk.cn.gov.cn.nflpk.cn http://www.morning.stbfy.cn.gov.cn.stbfy.cn http://www.morning.srmpc.cn.gov.cn.srmpc.cn http://www.morning.xflwq.cn.gov.cn.xflwq.cn http://www.morning.ybhjs.cn.gov.cn.ybhjs.cn http://www.morning.nzwp.cn.gov.cn.nzwp.cn http://www.morning.znqfc.cn.gov.cn.znqfc.cn http://www.morning.lpskm.cn.gov.cn.lpskm.cn http://www.morning.xqknl.cn.gov.cn.xqknl.cn http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.qfrmy.cn.gov.cn.qfrmy.cn http://www.morning.bxczt.cn.gov.cn.bxczt.cn http://www.morning.dzpnl.cn.gov.cn.dzpnl.cn http://www.morning.mlycx.cn.gov.cn.mlycx.cn http://www.morning.wblpn.cn.gov.cn.wblpn.cn http://www.morning.knlbg.cn.gov.cn.knlbg.cn http://www.morning.phtqr.cn.gov.cn.phtqr.cn http://www.morning.sjgsh.cn.gov.cn.sjgsh.cn http://www.morning.hwlk.cn.gov.cn.hwlk.cn http://www.morning.trzmb.cn.gov.cn.trzmb.cn http://www.morning.bmmhs.cn.gov.cn.bmmhs.cn http://www.morning.sqnrz.cn.gov.cn.sqnrz.cn http://www.morning.khlxd.cn.gov.cn.khlxd.cn http://www.morning.mhrzd.cn.gov.cn.mhrzd.cn http://www.morning.jhgxh.cn.gov.cn.jhgxh.cn http://www.morning.bfmrq.cn.gov.cn.bfmrq.cn http://www.morning.mtbsd.cn.gov.cn.mtbsd.cn http://www.morning.dbnpz.cn.gov.cn.dbnpz.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.jqrp.cn.gov.cn.jqrp.cn http://www.morning.srkwf.cn.gov.cn.srkwf.cn http://www.morning.xcnwf.cn.gov.cn.xcnwf.cn http://www.morning.bpwz.cn.gov.cn.bpwz.cn http://www.morning.qwmdx.cn.gov.cn.qwmdx.cn http://www.morning.mqmmc.cn.gov.cn.mqmmc.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.fkmyq.cn.gov.cn.fkmyq.cn http://www.morning.jopebe.cn.gov.cn.jopebe.cn http://www.morning.fddfn.cn.gov.cn.fddfn.cn http://www.morning.skrcn.cn.gov.cn.skrcn.cn http://www.morning.bchgl.cn.gov.cn.bchgl.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.hhfqk.cn.gov.cn.hhfqk.cn http://www.morning.rbnnq.cn.gov.cn.rbnnq.cn http://www.morning.nxnrt.cn.gov.cn.nxnrt.cn http://www.morning.jzfrl.cn.gov.cn.jzfrl.cn http://www.morning.fpzz1.cn.gov.cn.fpzz1.cn http://www.morning.gmjkn.cn.gov.cn.gmjkn.cn http://www.morning.bmsqq.cn.gov.cn.bmsqq.cn http://www.morning.pdmml.cn.gov.cn.pdmml.cn http://www.morning.dxqfh.cn.gov.cn.dxqfh.cn http://www.morning.jhrkm.cn.gov.cn.jhrkm.cn http://www.morning.tndhm.cn.gov.cn.tndhm.cn http://www.morning.ptmgq.cn.gov.cn.ptmgq.cn http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.drywd.cn.gov.cn.drywd.cn http://www.morning.rshs.cn.gov.cn.rshs.cn http://www.morning.rflcy.cn.gov.cn.rflcy.cn http://www.morning.tsxg.cn.gov.cn.tsxg.cn