作者小头像 Lv.1
9 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
TA还没获得勋章~
成长雷达
0
9
0
0
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2020/08/07 09:04:14 最后回复 duanjin 2020/08/17 00:04:28 版块 社区活动
16280 170 0
发布时间 2020/08/07 09:04:14 最后回复 duanjin 2020/08/17 00:04:28 版块 社区活动
16280 170 0
发布时间 2020/08/07 09:04:14 最后回复 duanjin 2020/08/17 00:04:28 版块 社区活动
16280 170 0
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32447 472 0
他的回复:
华为id: hw21424327打卡ajax的第四章和第五章第四章 jQuery 中的 AjaxjQuery 介绍jQuery 是 JavaScript 的一个库,它极大地简化了 JavaScript 编程。它广泛地使用一种$符号。一些 JS 是对 DOM 元素的操作,然而这些 JS 代码在执行到它时,DOM 还未加载,这个时候就会出现错误,正确的做法是把这个 JS 写到标签后,或者在 JS 中使用 ready方法等待 DOM 加载完才去执行 DOM 相关的 JS 操作。alert("hello"); $(document).ready(function(){ $("#name").html("hello world");})extends layout block content block(id="name")jQuery 中的 get 与 post 方法jQuery中的get方法使用时写为$.get(url, data, callback, type),括号中是它的参数,除了url其余三个可以省略。这四个参数详解为:url:请求的地址data:请求的参数callback:请求成功时的回调函数type:请求返回的数据格式请求参数可以是 JSON,可以是字符串。返回的数据格式可以是:JSON,HTML,Text等。post方法使用时写为$.post(url, data, callback, type),post请求参数放在请求体中,其余用法与get方法大致相同。案例$(function){ $("#name").html("classroom"); $.get("/ajax", function(){ console.log(variable); },"script")}需要修改koa中app.js的内容,这样get请求成功时才能打印出variable(app.js是服务器的内容,我们需要使用get方法访问服务器,并得到相应数据,这里是一个模拟)。koa中的app.js增加下述内容:app.use(async function(ctx){ if(ctx.path=="/ajax"){ ctx.body="var variable='hello world'"; }})jQuery 中的 ajax 方法jQuery的ajax方法是post和get方法底层方法。它使用的格式为$.ajax(option),option是JSON格式的配置参数,用于设置ajax的请求。常用配置有:url:发送请求的地址,type:请求方式(get和post),data:请求参数,dataType:返回的数据类型(JSON、html、xml)。success:请求成功后的回调函数,error:请求失败后的回调函数,complete:请求不论成功或者失败后返回的函数布尔类型的请求:async:是否为异步,cache:进行缓存,timeout:请求超时时间(毫秒)案例(对上节get方法的内容使用ajax方法重写)$.ajax({ url: '/ajax', dataType: 'script', success: function(){ console.log(variable); }})第五章 AJAX实战案例第一节 登陆页面案例Node.js初始化项目       koa2 login    cd login && cnpm install    npm startviews/index.pugblock content    h1 登陆华为帐号    div 华为帐号:      input(type='text' id='account')    div 帐号密码:      input(type='password' id='pwd')    button(type='button' id='btn') 登陆    加载资源login.js 登陆提交及ajax请求发送views/layout.pug    block content    javascripts/login.js //alert('login') // 测试login.js是否能在首而成功加载 var btn = document.getElementById("btn");var account = '';var pwd = '';btn.onclick = function(){    account = document.getElementById("account").value;    pwd = document.getElementById('pwd').value;    ajax({        type: 'post',        url: '/login',        data:{            account: account,            pwd: pwd        },        success: function(data){            alert(data)        }    })    function ajax(opt){        var defaultParam = {            type: 'get',            url: '#',            data: {},            async: true,            success: function(){}        }        for(var key in opt){            defaultParam[key] = opt[key];        }        var xhr = null;        if(window.XMLHttpRequest){            xhr = new XMLHttpRequest();        }else{            xhr = new ActiveXObject('Microsoft.XMLHTTP');        }        var paramStr = "";        for(var k in defaultParam.data){            paramStr += k + '=' + defaultParam.data[k] + '&';        }        paramStr = paramStr.substr(0,paramStr.length - 1);        console.log(paramStr);        if(defaultParam.type == 'get'){            xhr.open(defaultParam.type,defaultParam.url + '?' + paramStr,defaultParam.async);            xhr.send()        }else{            xhr.open(defaultParam.type,defaultParam.url,defaultParam.async); // post请求            xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');            xhr.send(paramStr)        }        xhr.onreadystatechange = function(){            if(xhr.readyState == 4){                if(xhr.status == 200){                    defaultParam.success(xhr.responseText);                }            }        }    }}项目接口配置在login.js中我们自定义ajax()方法中url对应的接口,在此配置app.js// 未尾添加app.use(async function (ctx){  if(ctx.path == "/login"){    if(ctx.request.body.account == 'zhou' && ctx.request.body.pwd == '123'){      ctx.body = '登陆成功 !'    }else{      ctx.body = '登陆失败 !'    }  }})module.exports = app
发布时间 2020/07/13 10:23:19 最后回复 Marry 2020/09/12 21:51:44 版块 社区活动
49804 1639 1
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32447 472 0
他的回复:
ajax第三章打卡 id:hw21424327第三章 揭秘AJAX第一节 XMLHttpRequest同步和异步同步:synchronous 简称sync异步:asynchronous 简称 asyncXMLHttpRequest简称:XHR方法:xhr.open() xhr.send() setRequestHeader Content-type属性:onreadystatechange    readyState    Status    Response TextXMLHttpRequest的使用四步走:1、创建XMLHttpReuestvar xhr = new XMLHttpRequest();2、使用open方法,初始化请求参数xhr.open("get", "/ajax", true) //请求的方法,常用的主要是get和post;接口的地址;表明请求是同步还是异步,ture为异步3、使用send方法,发送请求xhr.send() //发送具体的请求,如果是post方法,请求放在send里,如果是get方法,请求放在xhr.open的接口地址位置4、使用onreadystatechange属性,接收返回数据xhr.onreadystatechange = function(){ xxxxx}//当readystate发生变化时,就会触发function,执行里面的函数第二节 AJAX的使用客户端(浏览器)四步走发送ajax请求open(method,url,async)setRequestHeader("Content-type","application/x-www-form-urlencoded")//当post方法时,设置send(param)readyState:4 //0、1、2、3、4常用4,代表请求已经完全返回status:200服务器接收请求返回数据启动项目在index.pug添加代码在layout.pug中引入ajax.js文件编写ajax.js文件在app.js文件中添加服务器端app.use(async function(ctx, next) {     if (ctx.path == "/ajax") {         ctx.body = "hello ajax!"     } })第三节 跨域请求同源策略浏览器的安全策略协议名+主机名+端口号 同源是指"协议+域名+端口"三者相同跨域请求方法:JSONP、Proxy、iframe、CORS天然可以跨域的标签:script(img、link)跨域请求同源策略浏览器的安全策略防止不同域的情况获取别人的数据协议名+主机名+端口号 当三者相同时,才是同一域跨域请求跨域的方法:JSONP、Proxy、iframe、CORS天然可以跨域的标签:script(img、link)将项目ajax复制一份,重新命名为ajax2修改端口为3002构造场景,2号站点发送请求获取一号站点的信息把2号站点的请求地址改为1号站点的请求地址在2号站点发送请求提示错误,不允许跨域获取信息那通过什么来实现跨域请求呢我们常用JSONP的方法来实现跨域请求,使用天然的跨域标签修改ajax2的index.pug,和ajax1做区分对layout.pug进行修改,添加如下代码script.   function f (data) {     console.log(data)   }  //pug语法   //使用script实现跨域对站点1的接口进行修改,将f函数写入app.js
发布时间 2020/07/13 10:25:31 最后回复 blateyang 2020/08/20 23:20:02 版块 社区活动
32447 472 0
他的回复:
ajax第一章和第二章打卡 id:hw21424327第一章:初识AJAX一、AJAX的优势大幅度提升用户体验能够减轻服务端的压力异步加载局部更新前端通过ajax技术从后端服务器中获取数据二、AJAX网络通信 (分层设计思想)TCP/IP(传输控制协议/网络协议)  OSI 7层网络模型:物理层数据链路层--->交换机网络层--->路由器传输层--->TCP&UDP会话层--->建立,管理和维护会话表示层--->数据格式转化,数据加密应用层--->为程序提供服务网络接口层:物理层+链路层OSI模型把网络通信的工作分为7层,从下向上分别是 物理层--数据链路层--网络层--传输层--会话层--表示层--应用层  OSI模型的设计目的是成为一个所有销售商都能实现的开放网路模型  OSI模型可以克服使用众多私有网络模型所带来的困难和低效性  OSI模型是设计和描述计算机网络通信的基本框架三、http协议http 协议特点 (请求和相应)无状态协议不会建立持久连接第二章:node.js服务node.jsNode.js 就是运行在服务端的 JavaScript的开放源代码、跨平台JavaScript运行环境官网:https//nodejs.org定义:nodejs是一个基于chrome v8 引擎运行代码,单线程异步IO安装 (新版本的nodejs已经集成了npm)NPM全称Node PackageManager,即node包管理器)是Node.js默认的、以JavaScript编写的包管理系统。用npm安装,可以先用npm install cnpm -g 安装cnpm(中国淘宝的cdn)。之后使用cnpm安装npm 版本查询npm -vnpm config set registry https://repo.huaweicloud.com/repository/npm/npm cache clean -f##安装脚手架npm install koa-generator -g //安装koakoa2 ajax //使用koa2命令创建web项目cd ajax && npm install //进去项目目录安装依赖包nmp start //运行项目先搞清楚bin里的www为项目入口,通过它引入app.js配置内容。node_moudel为模块加载生成的文件夹,里面全是模块功能的源码。public公共文件夹,放一些样式、页面js逻辑、图片。routers路由,功能为分发请求。views为视图文件,jade是一个文本格式,其内容还可以是我们最熟悉的html。app.js和package.json是配置文件
发布时间 2020/07/13 10:23:19 最后回复 Marry 2020/09/12 21:51:44 版块 社区活动
49804 1639 1
发布时间 2020/07/13 10:23:19 最后回复 Marry 2020/09/12 21:51:44 版块 社区活动
49804 1639 1
发布时间 2020/07/13 10:23:19 最后回复 Marry 2020/09/12 21:51:44 版块 社区活动
49804 1639 1