博客列表 >AJAX的原理

AJAX的原理

南瓜又个梦
南瓜又个梦原创
2021年07月06日 23:28:26443浏览

背景

  • AJAX是浏览器上的功能
  • 浏览器可以发请求,收响应
  • 浏览器构建了一个全局函数,在window上构建了一个 XMLHttpRequest函数
  • JS通过它发请求收响应

一个自动重启代码的工具 node-dev

安装命令

  1. yarn global add node-dev
  2. //或者
  3. npm install -g node-dev

运行

  1. Usage
  2. Just run node-dev as you would normally run node:
  3. node-dev server.js

加载步骤

  • 准备一个服务器
    代码在node-damo1,是最开始的代码
  • 添加路由
    用if else判断路径,解析对应的字符串,HTML文件也是一串字符。
  • 加载css/js进入页面
    1.(服务器+页面引用)可以用在HTML页面加引用链接,在在路由指定路径解析相对应的css文件字符串
    1. //在HTML加
    2. <link rel="stylesheet" href="style.css">
    3. //在服务器路由上加
    4. else if (path==='/style.css'){
    5. response.statusCode = 200
    6. response.setHeader('Content-Type', 'text/css;charset=utf-8')
    7. const string3=fs.readFileSync('public/style.css')
    8. response.write(string3)
    9. response.end()
    10. }
    2.(用JS)在用JS来添加css文件
    创建一个HttpRequest
    1. const request=new XMLHttpRequest()
    调用对象的open方法
    1. request.open('get','/style.css')
    监听对象的onload和onerror事件
    1. request.onload=()=>{
    2. console.log('请求成功了')
    3. const style=ducoment.createElement(style)
    4. style.innerHtml(request.response)
    5. document.head.appendChild(style)
    6. }
    调用对象的send方法
    1. request.send()

    onload和onerror的代替函数

    onreadystatechange有状态码,关于加载到哪一步,
    new XMLHttpRequest request.readyState=0
    open request.readyState=1
    下载完成获得路径 request.readyState=2
    send request.readyState=3
    下载完成不一定对应到对的路径
    在判断下载完成后要判断对应状态码,200-300是正常
    4开头的就有问题
    1. request.onreadystatechange=()=>{
    2. //
    3. if(request.readyState>200 && request.readyState<300){
    4. //创建一个div标签
    5. const div=document.createElement('div')
    6. //将获取来的内容写入div标签
    7. div.innerHTML=request.response
    8. //将标签插入HTML中
    9. document.body.appendChild(div)
    10. }else{
    11. alert('请求2.html失败')
    12. }
    13. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议