AJAX的快速学习

AJAX的快速学习

Asynchronous Javascript And XML,简称AJAX,异步的JS和XML,它不是一种新的技术,只是老技术JS采用新用法

前提:

html、css、javaScript、json

同步请求和异步请求

同步请求,浏览器进行请求之后必须等到服务器返回请求才能进行浏览器的其他操作

异步请求,浏览器返回应答之前也可以进行浏览器其他操作

同步请求,整个页面都会刷新一次

异步请求,局部刷新一次

AJAX的对象

XMLHttpRequest对象,专门用来发送异步请求当然也可以发送同步请求

AJAX代码编写的步骤

  • 创建XMLHttpRequest对象

  • 注册回调函数

  • 建立连接与服务端的连接

    • 向服务器发送请求

      • 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:

        xmlhttp.open("GET","test1.txt",true);
        xmlhttp.send();
        
        方法描述
        open(method, url,async)规定请求的类型、URL以及是否异步处理请求
        method :请求的类型GET或POST
        url:文件在服务器的位置
        async:true(异步)false(同步)
        send(string)将请求发送到服务器
        string:仅用于POST请求
        setRequestHeader(header,value)向请求添加 HTTP 头
        header: 规定头的名称
        value: 规定头的值
  • 发送数据

    var xmlhttp;
    
    function ajax_demo(){
      //创建对象
      if(window.XMLHttpRequest){
        xmlhttp = new XMLHttpRequest();
      }
      else{
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP")
      }
      //注册回调函数
      xmlhttp.onreadystatechange = function(){
        
    	}
      //建立连接
      xmlhttp.open("POST|GET","目标URL",true|false);
      //发送数据
      xmlhttp.send();
    }
    
  • 服务器响应:如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性

    属性描述
    responseText获得字符串形式的响应数据。
    responseXML获得 XML 形式的响应数据。

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。每当 readyState 改变时,就会触发 onreadystatechange 事件。readyState 属性存有 XMLHttpRequest 的状态信息。

属性描述
onreadystatechange存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。
0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就绪
status200: “OK” 404: 未找到页面

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

xmlhttp.onreadystatechange = function()
{
  if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
    document.getElementById().innerHTML.responseText;
	}
}

使用 Callback 函数

callback 函数是一种以参数形式传递给另一个函数的函数。

如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):

function myFunction()
{
loadXMLDoc("ajax_info.txt",function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  });
}
源码地址: https://pan.quark.cn/s/d1f41682e390 miyoubiAuto 米游社每日米游币自动化Python脚本(务必使用Python3) 8更新:更换cookie的获取地址 注意:禁止在B站、贴吧、或各大论坛大肆传播! 作者已退游,项目不维护了。 如果有能力的可以pr修复。 小引一波 推荐关注几个非常可爱有趣的女孩! 欢迎B站搜索: @嘉然今天吃什么 @向晚大魔王 @乃琳Queen @贝拉kira 第三方库 食用方法 下载源码 在Global.py中设置米游社Cookie 运行myb.py 本地第一次运行时会自动生产一个文件储存cookie,请勿删除 当前仅支持单个账号! 获取Cookie方法 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 按刷新页面,按下图复制 Cookie: How to get mys cookie 当触发时,可尝试按关闭,然后再次刷新页面,最后复制 Cookie。 也可以使用另一种方法: 复制代码 浏览器无痕模式打开 http://user.mihoyo.com/ ,登录账号 按,打开,找到并点击 控制台粘贴代码并运行,获得类似的输出信息 部分即为所需复制的 Cookie,点击确定复制 部署方法--腾讯云函数版(推荐! ) 下载项目源码和压缩包 进入项目文件夹打开命令行执行以下命令 xxxxxxx为通过上面方式或取得米游社cookie 一定要用双引号包裹!! 例如: png 复制返回内容(包括括号) 例如: QQ截图20210505031552.png 登录腾讯云函数官网 选择函数服务-新建-自定义创建 函数名称随意-地区随意-运行环境Python3....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值