1、概念:
同步交互:用户向服务器端发起请求的时候,直到服务器端进行响应的全过程,用户是不可以做其他事情的(等)
典型:网址请求、表单提交请求 - 整个页面都是会刷新一次的,属于同步
异步交互:用户向服务器端发起请求的时候,直到服务器端进行响应的全过程,用户是可以做其他事情的(不等)
典型:ajax请求
2、ajax:
Asynchronous JavaScript And XML:异步的js和XML
不严格的定义:页面不会完整的刷新,只会导致局部页面发生改变
其实我们早就见过异步技术/异步代码了:
1、Node.js中文件读、写、追加 - 目的:文件系统
2、mongoose增、删、改、查 - 目的:操作数据库
3、定时器 - 目的:做特效
4、ajax - 目的:在不刷新页面的情况下和服务器端进行交互 - 可以把服务器端的东西拿到前端来
3、如何使用:4步
1、创建ajax的核心对象XMLHttpRequest - 简称XHR核心对象,有了它才可以使用ajax;
var xhr=new XMLHttpRequest();
2、建立和服务器端的连接:
xhr.open("GET/POST","/路由");
3、向服务器端发送请求消息:
xhr.send();
特殊:2个
1、*GET请求:xhr.send()会失效,但是还不能省略,必须写为xhr.send(null);,请求消息需要放到路由的?后面
xhr.open("GET","/路由?key=value&key=value...");
xhr.send(null);
2、POST请求:xhr.send()可用,但是必须在之前加上一句话设置请求头部 - 暂时不用
xhr.open("POST","/路由");
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send("key=value&key=value...");
get和post的区别,都是有用:
1、get是显示提交,大小有限2kb,作用:一切的搜索框,为了找后端拿东西,不存在安全性的
问题,ajax最大的目的就是把后端的东西拿到前端,所以ajax用get的情况更多
2、post是隐式提交,大小无限,作用:登录、注册 这类根安全性挂钩的东西
4、绑定状态的监听事件
xhr.onreadystatechange=()=>{
if(xhr.readyState==4&&xhr.status==200){
xhr.responseText; - 服务器端响应的东西,难就难在拿到东西你要干什么
}
}
注意:
1、打开网页,不要右键直接打开,一定要开启服务器后,在浏览器用网络地址去访问:127.0.0.1或 ip地址
2、ajax会自动在客户端网页发起请求,不要你去加路由访问
3、不管客户端(雪中送炭)做不做验证,服务器端必须要做
4、可以理解ajax,其实就是一个另类的表单,但是是异步交互不会刷新页面
1、XML数据格式:
1、面试题:HTML、XHTML、DHTML、XML分别是什么?
HTML - 网页 XHTML - 更严格的网页:HTML5之前的一个版本XHTML,再之前的版本才是HTML4.01 DHTML - Dynamic:动态的网页,不是一个新技术、新概念,只是将现有技术的一个整合统称:HTML+CSS+JS(dom),导致我们在离线状态网页也具有动态特效,但还是是一个静态网页 XML - 配置文件 | 数据格式
2、如何使用xml,其实就是一个后缀.xml文件
1、创建xx.xml文件
2、必须写上声明标签:<?xml version="1.0" encoding="utf-8"?>
version - 版本:目前的版本只有1.0和1.1版本,但是1.1版本升级的并不理想,所以没有人使用,以后都不必再学习,它不会再更新了,因为淘汰了
3、注意:xml不存在任何预定义标签,所有的标签都是自定义的
4、必须写上一个根标签,而且只能写一个根标签(双标签)
5、恭喜你,你学完了,里面的东西,你随意,你想放什么标签就放什么标签
开发中,正常来说后端会想办法把数据库的数据整理为一个xml格式,此方法已经被淘汰了
前端:依然使用ajax去获取xml:
1、路由 写为 "xx.xml";
2、xhr.responseXML,获取到响应的xml文件,可以使用核心DOM进行处理
3、缺点:就是因为要使用核心DOM获取自己想要的部分才极其麻烦
2、JSON数据格式:
JavaScript Object Notation - js对象表示法,本身就是js的一部分
作用:配置文件 | 数据格式 类似于 xml
好处:比XML 更快、更简洁、更容易解析 - 一个优秀的数据格式能极大的提升程序员的开发效率
1、哪些属于JSON字符串,后端把数据库的数据取出来整理为一个JSON字符串:
1、'[]';
2、'{}';
3、'[{},{},{},{}]';
4、'{"names":[所有人的名字],"ages":[所有人的年龄],"salary":[所有人的工资]}';
Node.js可以用一个方法将JSON对象转为JSON字符串:*var JSON字符串=JSON.stringify(JSON对象);
2、前端如何去脱衣服:2种
eval("("+JSON字符串+")");
*JSON.parse(JSON字符串);
1、svn工具:集中式项目管理控制工具
集中式:服务器只有一个(项目经理),客户端(开发者)人人都可以安装
缺点:服务器只有一个,如果服务器坏了,就完求了
优点:局域网使用,项目绝对不会泄漏
现在使用的公司越来越少了,因为现在主流的项目管理工具是git
使用步骤:
项目经理:
1、安装svn服务器端:VisualSVN-Server-4.3.2-x64.msi
2、为此项目的员工,创建账号和密码
3、为项目创建一个项目仓库
4、运筹帷幄:把仓库地址发给对应的开发者,以及账号密码也会私发给你
开发者:
1、安装svn客户端:TortoiseSVN-1.14.1.29085-x64-svn-1.14.1.msi
2、重启电脑(不然看不到小图标)
3、对着自己的电脑,任意位置右键:svn checkout 检出(拉取项目仓库)放到仓库地址
4、做开发
5、下班时,提交自己今天的文件:对着文件夹空白处,右键,svn Commit提交,必须输入日志
6、第二天上之前,更新一下:对着文件夹空白处,右键,svn update更新
2、三阶段学git:分布式项目管理控制工具
人人都是服务器,人人都是客户端(云端)
1、jQueryUI插件库:
基于jQuery的开源网页用户界面代码库 - 提供了HTML、CSS、JS的一个插件库
组件库:组件:组成网页一部分的部件,代码重用,一般不具备JS功能(导航条、页脚...)
插件库:跟组件差不多,只不过带有JS功能(轮播、选项卡...)
目的:了解【库】的特点 - 简化原生JS开发,因为现在最流行的三大框架,在三阶段 - Vue(中国人自己开发)、React(第二早的)、Angular(最早的)。
三大框架出现过后,jQuery就被慢慢的取代了,但是还有一些老项目用的是jQuery(京东、淘宝...)
jQueryUI插件库的最大的作用:我们哪怕没有UI,做出来的东西也不会太丑,但是我觉得丑,太老了(样式有点过时了、好在我们可以自己修改)
如何使用jQueryUI
1、下载jQueryUI - 不需要你做
2、在页面上引入 - js顺序千万不能乱,因为jQueryUI是基于jQuery
<link rel="stylesheet" type="text/css" href="jquery-ui-1.13.2.custom/jquery-ui.css"/>
<script src="jquery-ui-1.13.2.custom/external/jquery/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="jquery-ui-1.13.2.custom/jquery-ui.js" type="text/javascript" charset="utf-8"></script>
3、挑选出你需要的/喜欢的插件,直接梭到你的项目中
4、根据设计图提供的样式,来修改CSS,如果你没修改成功,只有一个可能:权重不够
5、利用ajax去获取数据库中的数据,来进行页面的渲染
6、千万别忘了渲染完毕后再调用实现xx功能的那个方法
个人比较推荐的jQueryUI插件:
1、选项卡/标签页
2、菜单
3、折叠面板/手风琴
4、模糊查询/自动完成
5、特效的方法:$("找到某个人").toggle("动画名",执行毫秒数);
如果toggle不传任何参数,为瞬间显示和瞬间隐藏,甚至不需要自己写判断,它底层帮你写好了
toggle === show + hide;这三个方法用法完全一致