Blogger Information
Blog 77
fans 0
comment 2
visits 55495
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
AJAX的原理
南瓜又个梦
Original
444 people have browsed it

背景

  • 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. }
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post