第六周知识总结

65 阅读3分钟

Ajax技术:Ajax:Asynchronous JavaScript And XML - 异步的JavaScript和XML

1、概念:

同步交互:用户向服务器端发起请求且响应的全过程,用户只能等待资源加载。

异步交互:用户向服务器端发起请求且响应的全过程,用户可以做其它操作

 

常见的Ajax技术:

1、定时器 - 做特效

2、Node操作mongo的增删改查 - 后端交互数据库的

3、ajax - 比较验证,数据渲染

 

2、使用的固定步骤:

1、创建ajax核心对象:

let xhr=new XMLHttpRequest();

 

2、建立和 服务器 的连接

xhr.open("GET/POST","路由");

 

3、根据向服务器端发送请求消息的方式的不同,有不同的发送方式:

(1) GET:

  xhr.open("GET","路由?name=value&...");

  xhr.send(null);

 

(2) POST:

xhr.open("POST","路由");

  xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

  xhr.send("name=value&...");

 

4、绑定状态监听事件

xhr.onreadystatechange=()=>{

if(xhr.readyState==4&&xhr.status==200){

let data=xhr.responseText; //返回数据

                  操作;//对数据进行操作

}

}

 

 

 

数据格式:XML和JSON

1、XML

使用步骤:

(1)创建一个后缀.xml的文件

  (2)必须写上声明标签:,就可以往里面进行添加数据。

         在添加数据时的注意点:

1.必须写上一个根标签,而且只能写一个根标签,而且必须是双标签

前端获取xml数据:依然使用ajax去获取xml

1、路由:写为"xx.xml";

2、xhr.responseText 换成 xhr.responseXML

 

2、JSON:JavaScript Object Notation:JS对象表示法,本身就是JS的一部分

优点:比XML 更简洁、更快、更容易解析 - 一个优秀的数据格式可以极大的提升程序员的开发效率

(1)、JSON字符串的常见格式:

1、'[1,2,3,4,5]'

2、'{"key":value}'

3、*'[{},{},{},{}]'

4、'{"names":["袍哥","钟哥","苗姐"],"ages":[18,19,20]}'

 

(2)、前端依然使用ajax去获取响应的数据:

          注意:在数据库数据会自动生成一个JSON0数据,但是需要转为字符串进行传输,然后再前端进行转为JSON数据:JSON。stringfy(rs)

 

将JSON字符串解析为一个对象,那么方法:

1、eval("("+JSONtxt+")")

2、*JSON.parse(JSONtxt)

 

 

 

jQueryUI:基于jQuery(基于JavaScript的一个框架。

 

使用步骤:

 1、下载jQueryUI 并引入相应文件(注意:顺序不能错,一定要先引入jQuery的JS,再引入jQueryUI的JS)

 3、挑选出你需要的插件,复制代码到自己的项目中去

4、根据设计图,来修改样式 (注意:权重问题)

5、使用ajax去获取数据库中的数据,来进行页面渲染;调用jQuery提供的xx方法来实现功能!

 

个人比较常用的JQUI的插件:

 1、选项卡

2、菜单

3、手风琴

4、模糊查询

5、JQ动画/

    

    简化DOM操作:

工厂函数$ 或者 jQuery:

作用:

1、查找元素:$("JQ选择器")

底层原理:document.querySelectorAll();

2、创建元素:$(<标签 属性>内容</标签>) -

底层原理:document.createElement("");

3、可以将DOM转为JQ:只有两个点this和target,$(DOM对象);

4、代替了window.onload - $(callback),

1、查找元素:

1、除了直接查找:$("JQ选择器")

2、通过 关系 查找:至少要先找到一个人才可以使用关系:

父:parent();

子:children();

前一个兄弟:prev();

后一个兄弟:next();

其他兄弟:siblings();

2、操作元素:

内容:

获取:$("xx").html/text/val();

设置:$("xx").html/text/val("新内容");

 

属性:

获取:$("xx").attr("属性名");

设置:$("xx").attr("属性名","属性值");

删除:$("xx").removeAttr("属性名");

 

样式:

1、可以操作class

1、添加class:$("xx").addClass("新class") - JS中没有此操作,只能替换

2、删除class:

$("xx").removeClass()

如果不传实参,则删除所有class

如果传入实参,则删除指定class

3、切换class:

$("xx").toggleClass("d3")

2、直接操作css

获取:$("xx").css("css属性名");

设置:$("xx").css({

css属性名:"css属性值",

...

           });

3、JQ遍历 - 一般只用于获取(JQ默认只能获取第一的东西,想要获取到所有必须遍历)

$("一堆人").each((i,val)=>{操作}) //i是下标val是遍历到的东西

 

 

4、上树:$("父").append(儿子)

   删除:$("xx").remove();

 

5、JQ动画:

1、显示:$("xx").show();

2、隐藏:$("xx").hide();

3、切换:$("xx").toggle();

如果不传参数,是瞬间显示和隐藏

如果传入参数$("xx").api("动画名称",时长); - 一定要搭配jQueryUI才可以

 

JQ与DOM的相互转换:

DOM->JQ:$(dom)

JQ->DOM:jq对象[下标]

 

jQuery的组成部分:

1、jQuery.js

2、jQueryUI.js

3、jQueryMobile

4、Qunit

 

 

 

滚动加载数据

关键点:判断滚动条距离页面的高度

语法:window.scrollY+innerHeight==document.body.clientHeight