HTML DOM

Window对象

设置时间

setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout() 在指定的毫秒数后调用函数或计算表达式。

AJAX

详解onreadystatechange
onreadystatechange属性是一个方法,当Ajax引擎的状态发生改变时都会执行onreadystatechange属性对应的方法.
ajax引擎的状态属性readyState(0 1 2 3 4):
0: 请求未初始化
1: 服务器连接已建立
2: 请求已接收
3: 请求处理中
4: 请求已完成,且响应已就绪
当前ajax引擎的状态属性readyState为4时,说明服务器的响应已经发送给ajax请求了. 但是响应的状态码为200时说明响应的内容是正确的,这时才会根据相应内容对当前页面的html处理.
因为HTTP协议中规定返回当前请求的http响应状态码.
200 ok 304 缓存; 404 not found; 403 没有权限 501 服务器级别错误.
ajax引擎的响应状态码属性status(200 304 404 403 501).
根据上面所说才有以下代码:

  1. xmlHttpRequest.onreadystatechange=function(){
  2. //当请求和响应同时完成,从Ajax引擎中获取响应内容,然后通过Javascript对网页进行操作
  3. if (xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){
  4. //根据相应内容对网页进行操作的代码通常写在这里
  5. // xmlHttpRequest. responseText
  6. // xmlHttpRequest. responseXML
  7. }
  8. }

JSON.parse

将json的字符串转换成 对象

  1. 接口地址:http://139.9.177.51:3333/api/testGet
  2. 方式:get
  3. 参数:name(string)
  4. 返回:
  5. {
  6. "code":200,
  7. "msg":"没有接收到传过来的参数name呢,再试试",
  8. "data":""
  9. }
  10. -------------------------------------------------------------------------------
  11. 接口地址:http://139.9.177.51:3333/api/testPost
  12. 方式:post
  13. 参数:name(string)
  14. 返回:
  15. {
  16. "code":200,
  17. "msg":"没有接收到传过来的参数name呢,再试试",
  18. "data":""
  19. }
  20. -------------------------------------------------------------------------------
  21. 接口地址:http://139.9.177.51:3333/api/emailExist
  22. 接口说明:邮箱是否存在
  23. 方式:post
  24. 参数:email(string)
  25. 返回:
  26. {
  27. "code":200, //200表示成功,500表示失败
  28. "msg":"该邮箱可以使用",
  29. "data":""
  30. }
  31. 已存在的邮箱:["zhangsan@qq.com", "lisi@qq.com", "wangwu@qq.com", "123@qq.com", "123456@qq.com"]
  32. -------------------------------------------------------------------------------
  33. 接口地址:http://139.9.177.51:3333/api/reg
  34. 接口说明:注册
  35. 方式:post
  36. 参数: (string)
  37. 返回:
  38. {
  39. "code":200, //200表示成功,500表示失败
  40. "msg":"",
  41. "data":""
  42. }

GET

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. /*
  11. 发送get方式的请求
  12. */
  13. // 1. 创建一个ajax对象
  14. var xhr = new XMLHttpRequest()
  15. // 2. 配置请求的方式 和 请求的地址
  16. // xhr.open('get', './serve/test.json?name=zs&email=zs@qq.com')
  17. // xhr.open('get', 'http://139.9.177.51:3333/api/testGet')
  18. xhr.open('get', 'http://139.9.177.51:3333/api/testGet?name=joe')
  19. // 3. 监听ajax对象的准备状态变化
  20. xhr.onreadystatechange = function () {
  21. console.log('ajax的状态变化了...')
  22. // console.log(xhr.readyState)
  23. // 如果ajax准备状态等于4 且 http的状态码等于200 这个时候去接收数据 才是最完整的
  24. if (xhr.readyState === 4 && xhr.status === 200) {
  25. var data = xhr.responseText
  26. console.log(data) // 接受服务器响应的数据
  27. }
  28. }
  29. // 4. 发送请求
  30. xhr.send()
  31. </script>
  32. </body>
  33. </html>

POST

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <script>
  10. // 1. 创建ajax对象
  11. var xhr = new XMLHttpRequest()
  12. // 2. 配置请求和方式地址
  13. xhr.open('post', 'http://139.9.177.51:3333/api/testPost')
  14. // 3. 监听状态改变
  15. xhr.onreadystatechange = function () {
  16. if (xhr.readyState === 4 && xhr.status === 200) {
  17. var data = JSON.parse(xhr.responseText)
  18. console.log(data)
  19. console.log(data.code)
  20. console.log(data.data)
  21. console.log(data.msg)
  22. }
  23. }
  24. // 4. 设置请求头
  25. xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded')
  26. // 5. 发送
  27. xhr.send('name=李寻欢')
  28. </script>
  29. </body>
  30. </html>

Jquery发送AJAX的三种方式

  1. <script src="./js/jquery.js"></script>
  2. <script>
  3. // get 请求
  4. $.get('http://139.9.177.51:3333/api/testGet?name=小貂蝉', function (data) {
  5. console.log(data)
  6. })
  7. // post 请求
  8. $.post('http://139.9.177.51:3333/api/testPost', { name: "李寻欢" }, function (data) {
  9. console.log(data)
  10. })
  11. // 万能请求
  12. $.ajax({
  13. type: 'post',
  14. url: 'http://139.9.177.51:3333/api/testPost',
  15. data: {
  16. name: '小貂蝉'
  17. },
  18. success: function (data) {
  19. console.log(data)
  20. }
  21. })
  22. </script>

字符串操作

字符串格式化打印

  1. var a = "Ammy";
  2. console.log("hello ", a);
  3. // hello Ammy
  4. console.log("hello " + a);
  5. // hello Ammy

数组操作.splice 参考

  1. var fruits = ["Banana", "Orange", "Apple", "Mango"];
  2. fruits.splice(2, 0, "Lemon", "Kiwi");
  3. //Banana,Orange,Lemon,Kiwi,Mango

语法: array.splice(index, howmany, item1, ….., itemX)

参数 描述
index 必需。整数,指定在什么位置添加/删除项目,使用负值指定从数组末尾开始的位置。
howmany 可选。要删除的项目数。如果设置为 0,则不会删除任何项目。
item1, …, itemX 可选。要添加到数组中的新项目。

BootStrap

视口

  • 可以用来显示内容的窗口大小,如果不设置,默认都有一个值,大部分都是 980
  • 标准的视口配置:
    ```javascript

width=device-width 视口宽度等于设备宽度

initial-scale=1 初始缩放比例:1 不缩放

minimum-scale=1 最小缩放: 1

maximum-scale=1 最大缩放: 1

user-scalable=no 用户缩放: 不允许

viewport-fit=cover 兼容iphoneX 刘海屏

  1. - 设备像素比: window.devicePixelRatio
  2. <a name="WulgZ"></a>
  3. ### 媒体查询-设备断点
  4. - 简单的说: 可以使用媒体查询判断当前设备的宽度, 根据这个宽度,写适合它的布局。
  5. ```javascript
  6. // 屏幕的最小宽度1082px
  7. @media screen and (min-width: 1082px) {
  8. # 这里是写css的 写在这里的css 只有在 大于1082px的屏幕下有效 【大屏有效】
  9. }
  10. // 屏幕的宽度在 540px 到 1082px之间
  11. @media screen and (min-width: 540px) and (max-width: 1082px) {
  12. # 这里的样式 中屏有效
  13. }
  14. // 屏幕的宽度小于 540px
  15. @media screen and (max-width: 540px ) {
  16. # 这里的样式 小屏有效
  17. }
  • 作用: 判断各个机型

    1. /*iPhone5和iPhone SE*/
    2. @media only screen
    3. and (device-width : 320px)
    4. and (device-height : 568px)
    5. and (-webkit-device-pixel-ratio : 2) {
    6. /*code*/
    7. }
    8. /* iPhone6/7/8 */
    9. @media only screen
    10. and (device-width : 375px)
    11. and (device-height : 667px)
    12. and (-webkit-device-pixel-ratio : 2) {
    13. /*code*/
    14. }
    15. /* iPhone6/7/8 Plus*/
    16. @media only screen
    17. and (device-width : 414px)
    18. and (device-height : 736px)
    19. and (-webkit-device-pixel-ratio : 3) {
    20. /*code*/
    21. }
    22. /* iPhoneX*/
    23. @media only screen
    24. and (device-width : 375px)
    25. and (device-height : 812px)
    26. and (-webkit-device-pixel-ratio : 3) {
    27. /*code*/
    28. }
  • 媒体的类型有两种

    1. @media screen { /* 屏幕样式 */}
    2. @media print{ /* 打印样式 */}