当前位置: 首页 > news >正文

免费推广网站下载搜索关键词的方法

免费推广网站下载,搜索关键词的方法,搜索引擎推广有哪些,wordpress漂浮你可以的#xff0c;去飞吧#xff01; 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误#xff0c;却在最外层接收错误→无法捕获 axios源码抛出异常#xff08;未捕获#xff09; !DOCTYPE html ht… 你可以的去飞吧 同步代码和异步代码 回调函数地狱和 Promise 链式调用 回调函数地狱 缔造“回调地狱”↓ 制造里层回调错误却在最外层接收错误→无法捕获 axios源码抛出异常未捕获 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title回调地狱/title /headbodyformspan省份/spanselectoption classprovince/option/selectspan城市/spanselectoption classcity/option/selectspan地区/spanselectoption classarea/option/select/formscript srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/scriptscript/*** 目标演示回调函数地狱* 需求获取默认第一个省第一个市第一个地区并展示在下拉菜单中* 概念在回调函数中嵌套回调函数一直嵌套下去就形成了回调函数地狱* 缺点可读性差异常无法获取耦合性严重牵一发动全身*/// 1. 获取默认第一个省份的名字axios({url: http://hmajax.itheima.net/api/province}).then(result {const pname result.data.list[0]document.querySelector(.province).innerHTML pname// 2. 获取默认第一个城市的名字axios({url: http://hmajax.itheima.net/api/city, params: { pname }}).then(result {const cname result.data.list[0]document.querySelector(.city).innerHTML cname// 3. 获取默认第一个地区的名字axios({url: http://hmajax.itheima.net/api/area, params: { pname, cname }}).then(result {console.log(result)const areaName result.data.list[0]document.querySelector(.area).innerHTML areaName})})}).catch(error {console.dir(error)})/script /body/html 总结 Promise - 链式调用 实操 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titlePromise_链式调用/title /headbodyscript/*** 目标掌握Promise的链式调用* 需求把省市的嵌套结构改成链式调用的线性结构*/// 1. 创建Promise对象-模拟请求省份名字const p new Promise((resolve, reject) {setTimeout(() {resolve(北京市)}, 2000)})// 2. 获取省份名字const p2 p.then(result {console.log(result)// 3. 创建Promise对象-模拟请求城市名字// return Promise对象最终状态和结果影响到新的Promise对象return new Promise((resolve, reject) {setTimeout(() {resolve(result --- 北京)}, 2000)})})// 4. 获取城市名字p2.then(result {console.log(result)})// then()原地的结果是一个新的Promise对象console.log(p2 p)/script /body/html 总结 async 和 await 使用 使用方法 在async函数中使用await直接获取Promise对象成功状态的结果值 完整代码 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleasync函数和await_解决回调函数地狱/title /headbodyformspan省份/spanselectoption classprovince/option/selectspan城市/spanselectoption classcity/option/selectspan地区/spanselectoption classarea/option/select/formscript srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/scriptscript/*** 目标掌握async和await语法解决回调函数地狱* 概念在async函数内使用await关键字获取Promise对象成功状态结果值* 注意await必须用在async修饰的函数内await会阻止异步函数内代码继续执行原地等待结果*/// 1. 定义async修饰函数async function getData() {// 2. await等待Promise对象成功的结果const pObj await axios({url: http://hmajax.itheima.net/api/province})const pname pObj.data.list[0]const cObj await axios({url: http://hmajax.itheima.net/api/city, params: { pname }})const cname cObj.data.list[0]const aObj await axios({url: http://hmajax.itheima.net/api/area, params: { pname, cname }})const areaName aObj.data.list[0]document.querySelector(.province).innerHTML pnamedocument.querySelector(.city).innerHTML cnamedocument.querySelector(.area).innerHTML areaName}getData()/script /body/html async函数和await_捕获错误 在area后面加了“1”用comsole.dir打印错误信息 接口返回的真正的响应数据在错误对象该对象中有着axios处理过的提供的一些其他信息的response属性 还可以到网络里查看到 疑问省份和城市应该获取成功为什么没有展示 ——在try语句中如果某句代码发生错误后面的不会再执行。 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleasync函数和await_错误捕获/title /headbodyformspan省份/spanselectoption classprovince/option/selectspan城市/spanselectoption classcity/option/selectspan地区/spanselectoption classarea/option/select/formscript srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/scriptscript/*** 目标async和await_错误捕获*/async function getData() {// 1. try包裹可能产生错误的代码try {const pObj await axios({ url: http://hmajax.itheima.net/api/province })const pname pObj.data.list[0]const cObj await axios({ url: http://hmajax.itheima.net/api/city, params: { pname } })const cname cObj.data.list[0]const aObj await axios({ url: http://hmajax.itheima.net/api/area, params: { pname, cname } })const areaName aObj.data.list[0]document.querySelector(.province).innerHTML pnamedocument.querySelector(.city).innerHTML cnamedocument.querySelector(.area).innerHTML areaName} catch (error) {// 2. 接着调用catch块接收错误信息// 如果try里某行代码报错后try中剩余的代码不会执行了console.dir(error)}}getData()/script /body/html 事件循环-EventLoop 事件循环 运行结果都是1 3 2 调用栈可以理解为 JS代码在运行时形成的调用环境 宿主环境浏览器注意浏览器是多线程的JS是单线程的 任务队列内存开辟的一块空间 代码及答案 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title事件循环_练习/title /headbodyscript/*** 目标阅读并回答执行的顺序结果*/console.log(1)setTimeout(() {console.log(2)}, 0)function myFn() {console.log(3)}function ajaxFn() {const xhr new XMLHttpRequest()xhr.open(GET, http://hmajax.itheima.net/api/province)xhr.addEventListener(loadend, () {console.log(4)})xhr.send()}for (let i 0; i 1; i) {console.log(5)}ajaxFn()document.addEventListener(click, () {console.log(6)})myFn()// 1 5 3 2 4 点击一次document就会执行一次打印6/script /body/html 宏任务与微任务 宏任务与微任务 - 执行顺序 什么是宏任务 ——交给浏览器管理和执行的异步代码 什么是微任务在JS引擎中执行先与宏任务执行 ——JS引擎发起和管理执行的异步代码 经典面试题 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0title事件循环经典_经典面试题/title /headbodyscript// 目标回答代码执行顺序console.log(1)setTimeout(() {console.log(2)const p new Promise(resolve resolve(3))p.then(result console.log(result))}, 0)const p new Promise(resolve {setTimeout(() {console.log(4)}, 0)resolve(5)})p.then(result console.log(result))const p2 new Promise(resolve resolve(6))p2.then(result console.log(result))console.log(7)// 1 7 5 6 2 3 4/script/body/html Promise.all 静态方法 合并多个Promise对象 展出数据可使用低速网络查看是否同时展示 测试catch在weather后面加123 进catch不进then 案例 - 商品分类 !DOCTYPE html html langenheadmeta charsetUTF-8 /meta http-equivX-UA-Compatible contentIEedge /meta nameviewport contentwidthdevice-width, initial-scale1.0 /title案例_分类导航/titlelink relstylesheet href./css/index.css /headbody!-- 大容器 --div classcontainerdiv classsub-listdiv classitemh3分类名字/h3ullia hrefjavascript:;img srchttp://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/img/category%20(9).png /p巧克力/p/a/lilia hrefjavascript:;img srchttp://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/img/category%20(9).png /p巧克力/p/a/lilia hrefjavascript:;img srchttp://zhoushugang.gitee.io/erabbit-client-pc-static/uploads/img/category%20(9).png /p巧克力/p/a/li/ul/div/div/divscript srchttps://cdn.jsdelivr.net/npm/axios/dist/axios.min.js/scriptscript/*** 目标把所有商品分类“同时”渲染到页面上* 1. 获取所有一级分类数据* 2. 遍历id创建获取二级分类请求* 3. 合并所有二级分类Promise对象* 4. 等待同时成功后渲染页面*/// 1. 获取所有一级分类数据axios({url: http://hmajax.itheima.net/api/category/top}).then(result {console.log(result)// 2. 遍历id创建获取二级分类请求const secPromiseList result.data.data.map(item {return axios({url: http://hmajax.itheima.net/api/category/sub,params: {id: item.id // 一级分类id}})})console.log(secPromiseList) // [二级分类请求Promise对象二级分类请求Promise对象...]// 3. 合并所有二级分类Promise对象const p Promise.all(secPromiseList)p.then(result {console.log(result)// 4. 等待同时成功后渲染页面const htmlStr result.map(item {const dataObj item.data.data // 取出关键数据对象return div classitemh3${dataObj.name}/h3ul${dataObj.children.map(item {return lia hrefjavascript:;img src${item.picture}p${item.name}/p/a/li}).join()}/ul/div}).join()console.log(htmlStr)document.querySelector(.sub-list).innerHTML htmlStr})})/script /body/html 效果先是默认的HTML结构全部请求完成后才重新渲染展示如下 案例 - 学习反馈 样式结构 !DOCTYPE html html langzh-CNheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0!-- 初始化样式 --link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/reset.css2.0.2/reset.min.css!-- 引入bootstrap.css --link hrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/5.2.3/css/bootstrap.min.css relstylesheet!-- 核心样式 --link relstylesheet href./css/index.csstitle学习反馈/title /headbodydiv classcontainerh4 classstu-title学习反馈/h4img classbg src./img/head.png altdiv classitem-wrapdiv classhot-areaspan classhot热门校区/spanul classnavlia target_blank hrefhttp://bjcp.itheima.com/北京/a /lilia target_blank hrefhttp://sh.itheima.com/上海/a /lilia target_blank hrefhttp://gz.itheima.com/广州/a /lilia target_blank hrefhttp://sz.itheima.com/深圳/a /li/ul/divform classinfo-formdiv classarea-boxspan classtitle地区选择/spanselect nameprovince classprovinceoption value省份/option/selectselect namecity classcityoption value城市/option/selectselect namearea classareaoption value地区/option/select/divdiv classarea-boxspan classtitle您的称呼/spaninput typetext namenickname classnickname value播仔/divdiv classarea-boxspan classtitle宝贵建议/spantextarea typetext namefeedback classfeedback placeholder您对AJAX阶段课程宝贵的建议/textarea/divdiv classarea-boxbutton typebutton classbtn btn-secondary submit确定提交/button/div/form/div/divscript srchttps://cdn.bootcdn.net/ajax/libs/axios/1.2.0/axios.min.js/scriptscript src./js/form-serialize.js/script!-- 核心代码 --script src./js/index.js/script /body/html 功能核心JS代码 /*** 目标1完成省市区下拉列表切换* 1.1 设置省份下拉菜单数据* 1.2 切换省份设置城市下拉菜单数据清空地区下拉菜单* 1.3 切换城市设置地区下拉菜单数据*/ // 1.1 设置省份下拉菜单数据 axios({url: http://hmajax.itheima.net/api/province }).then(result {const optionStr result.data.list.map(pname option value${pname}${pname}/option).join()document.querySelector(.province).innerHTML option value省份/option optionStr })// 1.2 切换省份设置城市下拉菜单数据清空地区下拉菜单 document.querySelector(.province).addEventListener(change, async e {// 获取用户选择省份名字// console.log(e.target.value)const result await axios({ url: http://hmajax.itheima.net/api/city, params: { pname: e.target.value } })const optionStr result.data.list.map(cname option value${cname}${cname}/option).join()// 把默认城市选项下属城市数据插入select中document.querySelector(.city).innerHTML option value城市/option optionStr// 清空地区数据document.querySelector(.area).innerHTML option value地区/option })// 1.3 切换城市设置地区下拉菜单数据 document.querySelector(.city).addEventListener(change, async e {console.log(e.target.value)const result await axios({url: http://hmajax.itheima.net/api/area, params: {pname: document.querySelector(.province).value,cname: e.target.value}})console.log(result)const optionStr result.data.list.map(aname option value${aname}${aname}/option).join()console.log(optionStr)document.querySelector(.area).innerHTML option value地区/option optionStr })/*** 目标2收集数据提交保存* 2.1 监听提交的点击事件* 2.2 依靠插件收集表单数据* 2.3 基于axios提交保存显示结果*/ // 2.1 监听提交的点击事件 document.querySelector(.submit).addEventListener(click, async () {// 2.2 依靠插件收集表单数据const form document.querySelector(.info-form)const data serialize(form, { hash: true, empty: true })console.log(data)// 2.3 基于axios提交保存显示结果try {const result await axios({url: http://hmajax.itheima.net/api/feedback,method: POST,data})console.log(result)alert(result.data.message)} catch (error) {console.dir(error)alert(error.response.data.message)} })效果
文章转载自:
http://www.morning.sgfnx.cn.gov.cn.sgfnx.cn
http://www.morning.khlxd.cn.gov.cn.khlxd.cn
http://www.morning.jycr.cn.gov.cn.jycr.cn
http://www.morning.hqrr.cn.gov.cn.hqrr.cn
http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn
http://www.morning.ychoise.com.gov.cn.ychoise.com
http://www.morning.qwdlj.cn.gov.cn.qwdlj.cn
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.bzlgb.cn.gov.cn.bzlgb.cn
http://www.morning.kyhnl.cn.gov.cn.kyhnl.cn
http://www.morning.bmncq.cn.gov.cn.bmncq.cn
http://www.morning.prgdy.cn.gov.cn.prgdy.cn
http://www.morning.sxtdh.com.gov.cn.sxtdh.com
http://www.morning.rbsmm.cn.gov.cn.rbsmm.cn
http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn
http://www.morning.djgrg.cn.gov.cn.djgrg.cn
http://www.morning.qdrrh.cn.gov.cn.qdrrh.cn
http://www.morning.npqps.cn.gov.cn.npqps.cn
http://www.morning.rnqnp.cn.gov.cn.rnqnp.cn
http://www.morning.ktnmg.cn.gov.cn.ktnmg.cn
http://www.morning.mlnzx.cn.gov.cn.mlnzx.cn
http://www.morning.yrpg.cn.gov.cn.yrpg.cn
http://www.morning.sqhtg.cn.gov.cn.sqhtg.cn
http://www.morning.nlbhj.cn.gov.cn.nlbhj.cn
http://www.morning.fnrkh.cn.gov.cn.fnrkh.cn
http://www.morning.mqwdh.cn.gov.cn.mqwdh.cn
http://www.morning.ssjtr.cn.gov.cn.ssjtr.cn
http://www.morning.gfqj.cn.gov.cn.gfqj.cn
http://www.morning.lqqqh.cn.gov.cn.lqqqh.cn
http://www.morning.mqdr.cn.gov.cn.mqdr.cn
http://www.morning.xjmyq.com.gov.cn.xjmyq.com
http://www.morning.ttdxn.cn.gov.cn.ttdxn.cn
http://www.morning.lmknf.cn.gov.cn.lmknf.cn
http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn
http://www.morning.bpmnj.cn.gov.cn.bpmnj.cn
http://www.morning.rntyn.cn.gov.cn.rntyn.cn
http://www.morning.hptbp.cn.gov.cn.hptbp.cn
http://www.morning.nfks.cn.gov.cn.nfks.cn
http://www.morning.ybhjs.cn.gov.cn.ybhjs.cn
http://www.morning.cnyqj.cn.gov.cn.cnyqj.cn
http://www.morning.pwqyd.cn.gov.cn.pwqyd.cn
http://www.morning.wjqyt.cn.gov.cn.wjqyt.cn
http://www.morning.xbnkm.cn.gov.cn.xbnkm.cn
http://www.morning.mjwnc.cn.gov.cn.mjwnc.cn
http://www.morning.rryny.cn.gov.cn.rryny.cn
http://www.morning.yfqhc.cn.gov.cn.yfqhc.cn
http://www.morning.bfhrj.cn.gov.cn.bfhrj.cn
http://www.morning.czwed.com.gov.cn.czwed.com
http://www.morning.rnkq.cn.gov.cn.rnkq.cn
http://www.morning.zrdhd.cn.gov.cn.zrdhd.cn
http://www.morning.grjh.cn.gov.cn.grjh.cn
http://www.morning.jggr.cn.gov.cn.jggr.cn
http://www.morning.ykmtz.cn.gov.cn.ykmtz.cn
http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn
http://www.morning.qwrb.cn.gov.cn.qwrb.cn
http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn
http://www.morning.dxsyp.cn.gov.cn.dxsyp.cn
http://www.morning.rfzzw.com.gov.cn.rfzzw.com
http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn
http://www.morning.dpnhs.cn.gov.cn.dpnhs.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.rrcrs.cn.gov.cn.rrcrs.cn
http://www.morning.dpppx.cn.gov.cn.dpppx.cn
http://www.morning.kvzvoew.cn.gov.cn.kvzvoew.cn
http://www.morning.dwzwm.cn.gov.cn.dwzwm.cn
http://www.morning.ylqpp.cn.gov.cn.ylqpp.cn
http://www.morning.dskmq.cn.gov.cn.dskmq.cn
http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn
http://www.morning.kqgqy.cn.gov.cn.kqgqy.cn
http://www.morning.rykx.cn.gov.cn.rykx.cn
http://www.morning.bfcrp.cn.gov.cn.bfcrp.cn
http://www.morning.ltqzq.cn.gov.cn.ltqzq.cn
http://www.morning.fldrg.cn.gov.cn.fldrg.cn
http://www.morning.nqcwz.cn.gov.cn.nqcwz.cn
http://www.morning.tldfp.cn.gov.cn.tldfp.cn
http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn
http://www.morning.jkcnq.cn.gov.cn.jkcnq.cn
http://www.morning.jnbsx.cn.gov.cn.jnbsx.cn
http://www.morning.nclps.cn.gov.cn.nclps.cn
http://www.morning.fpqq.cn.gov.cn.fpqq.cn
http://www.tj-hxxt.cn/news/265414.html

相关文章:

  • 帐号售卖网站建设html可以做网站吗
  • 饰品做商城网站模式软件开发能力
  • 专门更新最新设计的网站集团网站设计公司
  • 阳江网站建设新会网站建设
  • 深圳网站建设外贸公司排名桦甸市建设局网站
  • 奉贤区做网站网站当前位置 样式
  • 我国网站无障碍建设仍处于免费接码网页版中国
  • 公司网站设计网络公司广西南宁人才招聘网站
  • 怎么免费建立一个网站免费网站制作公司
  • 广州免费自助建站开发医疗器械生产许可证
  • 自营店网站建设深圳保障性住房和安居房的区别
  • 津南天津网站建设html5手机网站制作教程
  • 化妆品网站建设规划书范文新余网站设计
  • 浙江凌宇环境建设公司网站手机app界面设计图
  • 克隆网站怎么做后台做网站需要的流程
  • 怎么做王者荣耀网站网站 视觉上
  • 免费下软件的网站国内电商平台大全
  • 网站开发主要使用的技术学做网网站论坛
  • 网站建设工作量评估报价表河北住房和城乡建设厅网站6
  • 做一晚水泥工歌曲网站哪些网站可以接任务做兼职
  • 可以做外链视频的网站大网站都开放自己的cms系统
  • 网站建设喀什浏览器下载安卓版
  • 深圳网站建设怎样快速女和男做的视频网站
  • 免费创建个人商城网站吗wordpress宠物
  • 网站搭建收费参考手机做任务的网站
  • 下载网站cms苏州注册公司网上申请入口
  • 项目计划书可行性报告罗湖网站建设公司乐云seo
  • 静态网站做新闻系统上海seo优化培训机构
  • 空包网网站怎么做的单页网站建设哪里有提供
  • 创意网站建设价格多少怎样做网站后台运营