nodeJS中ajax技术

2023-05-16

一、AJAX技术简介

AJAX 即 “Asynchronous JavaScript and XML”(异步的 JavaScript 与 XML 技术),指的是一套综合了多项技术的浏览器端网页开发技术。AJAX 的概念由 Jesse James Garrett 所提出,说白了就可以使用 JavaScript 代码发送网络请求并处理响应,由浏览器实现。

出现的很早 1998 年出来,首次是微软提出来的,并没有引起重视;直到2005年左右,谷歌推出 gmail,gmap 使得ajax技术一时间流行起来。

俗话:ajax技术就是在页面不刷新情况下,和服务器端进行交互的交互。

传统的 Web 应用允许用户端填写表单(form),当提交表单时就向网页服务器发送一个请求。服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因为在前后两个页面中的大部分 HTML 码往往是相同的。由于每次应用的沟通都需要向服务器发送请求,应用的回应时间依赖于服务器的回应时间。这导致了用户界面的回应比本机应用慢得多。

与此不同,AJAX 应用可以仅向服务器发送并取回必须的数据,并在客户端采用 JavaScript 处理来自服务器的回应。因为在服务器和浏览器之间交换的数据大量减少,服务器回应更快了。同时,很多的处理工作可以在发出请求的客户端机器上完成,因此 Web 服务器的负荷也减少了。

特点:

异步请求,局部刷新

同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

局部刷新指刷新页面部分内容。

优缺点:

优点:Web 应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变的信息,减轻服务器压力。

缺点:浏览器实现之间有差异处理兼容性问题;不能回退和前进;默认不支持跨域访问(浏览器的同源策略 - Web 安全 | MDN)。

注意事项

ajax 这门技术,必须要在网络协议环境下才可以使用。不能把网页直接拖入到浏览器执行,必须在 web 服务器模式下访问。

总结:ajax对我们来讲就是书写一段js代码来向服务器发送请求(异步)。

二、AJAX书写步骤

1、创建 AJAX 对象; 2、设置请求路径,请求方式等; 3、绑定监听状态改变的处理函数,在处理函数可获取响应数据; 4、发送请求。

创建ajax对象会有浏览器兼容性问题:


function createAjax() {
    var ajax;
    try {       // 非 IE 
        ajax = new XMLHttpRequest();
    }
    catch (e) { // IE
        ajax = new ActiveXObject('Microsoft.XMLHTTP');
    }
    return ajax;
}  

三、响应处理和响应流程

响应处理,即对服务响应回浏览器的数据根据状态码和 AJAX 对象的状态信息进行不同的处理,在绑定状态改变的处理函数中写对应的逻辑代码即可。

AJAX 对象有 4 个属性:

  • readyState 总共有 5 个状态值,分别为 0 ~ 4,每个值代表了不同的含义:onreadystatechange

    • 0:初始化,AJAX 对象还没有完成初始化

    • 1:载入,AJAX 对象开始发送请求

    • 2:载入完成,AJAX 对象的请求发送完成

    • 3:解析,AJAX 对象开始读取服务器的响应

    • 4:完成,AJAX 对象读取服务器响应结束

  • status 表示响应的 HTTP 状态码,常见状态码如下:

    • 200:成功

    • 302:重定向

    • 404:找不到资源

    • 500:服务端错误

  • responseText 获得字符串形式的响应数据。

  • responseXML 获得 XML 形式的响应数据。

综合以上,在状态改变的处理函数一般针对 readyState == 4 且 status == 200 的情况才处理,再根据后台返回的数据类型决定从 responseText 或者 responseXML 获取服务器响应回去来的数据。

四、使用ajax发送get请求

前端代码:


<body>
    <h1>这是首页</h1>
    欢迎来到我们网站!! <br><br>
    <button id="obtn">点击获取数据---点击发送Get请求</button>
    <div  id="odiv"></div>
<script>
    let obtn = document.getElementById("obtn");
    let odiv = document.getElementById("odiv");
​
    obtn.onclick = () => {
​
        //发送ajax请求
        // 1、创建 AJAX 对象;
        let ajax = new XMLHttpRequest();
​
        // 2、设置请求路径,请求方式等;ajax.open(请求方式,路径)
        ajax.open('GET', '/get_data');
        // 3、绑定监听状态改变的处理函数,在处理函数可获取响应数据;
        ajax.onreadystatechange = ()=>{
            // 获取响应回来的数据
            if(ajax.readyState===4&& ajax.status===200){
                console.log(ajax.readyState);
                console.log(ajax.responseText);
                // 请求到数据之后,就可以把数据更新到页面上
                odiv.innerHTML = ajax.responseText;
            }
        };
        // 4、发送请求。
        ajax.send()
    }
</script>  

服务端代码:


else if(requestUrl=== "/get_data"){       //或者写成:/get_data.*/.test(requestUrl)
    response.setHeader("Content-type","text/html;charset=utf-8");
    response.write("这个数据是来自服务器的...");
    response.end();
}
  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodeJS中ajax技术 的相关文章

随机推荐

  • nodeJS模块化开发

    1 模块的使用 1 1 为什么要模块化 了解 在计算机程序的开发过程中 xff0c 随着程序代码越写越多 xff0c 在一个文件里代码就会越来越长 xff0c 越来越不容易维护 为了编写可维护的代码 xff0c 我们把很多函数分组 xff0
  • nodejs中Buffer数据类型

    一 Buffer数据类型 JavaScript 语言自身只有字符串数据类型 xff0c 没有二进制数据类型 但在处理像文件流时 xff08 文件读写操作 xff09 xff0c 必须使用到二进制数据 因此在 Node js 中 xff0c
  • nodejs中fs文件系统内置模块

    一 fs文件系统模块 Node js 的 API 内置有两个模块 xff1a path 和 fs xff0c 我们使用 JavaScript 代码编写程序运行在 Node js 环境中就可以操作文件 1 1 同步读取文件信息 同步读取 xf
  • nodeJS中回调地域案例(Callback Hell)

    nodeJS中回调地域案例思考题 需求 xff1a 现在存在三个文件 1 txt 2 txt 3 txt 每个文件里面有一个字符 使用 xff1a fs readFile 异步 顺序读取 1 txt 2 txt 3 txt 里面的内容 xf
  • nodejs中对IP地址和端口的区分(基础了解)

    IP地址和端口的区分 ip地址 xff1a 标识网络上不同的设备 xff08 可连接网络的设备 xff08 电脑 手表 冰箱 智能设备等等 xff09 xff09 端口号 xff1a 标识同一台设备上的不同的网络进程 xff08 网络进程指
  • linux常用命令

    具体看自己的存放路径 重启Nginx usr local nginx sbin nginx s reload 重启PHP service php fpm restart linux查看目录下各个文件大小的命令 xff1a du h max
  • nodejs中http内置模块使用

    一 http模块 服务器获取数据原理 xff1a 前置知识点 xff1a IP地址 端口 http请求大致过程 先做粗略了解 xff0c 后面细讲 1 1 http核心模块的使用 四个步骤 xff1a 1 导入http模块 2 定义服务器程
  • nodeJS中npm简介与使用方法

    一 npm简介 npm 全称为 Node Package Manager xff0c 是一个基于 Node js 的包管理器 xff0c 也是整个 Node js 社区最流行 支持的第三方模块最多的包管理器 npm的初衷 xff1a Jav
  • nodeJS中利用第三方内置模块实现数字转大写功能

    一 案例制作 实现一个 xff0c 数字转大写的功能 如 xff1a 123 转 壹佰贰拾叁 在 nzh npm npmjs com 上查询npm文档引入第三方模块 找对应可能用上的包 xff0c 参考文档 xff0c 进行安装 xff0c
  • nodeJS编译环境下使用yarn工具的安装与使用方法

    一 yarn安装与使用 Yarn 是于 2016 年 10 月 由 Facebook Google Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具 xff0c 旨在取代 npm 这种包管理工具 官网 xff1a Do
  • nodejs不支持ES6模块化规范的解决方案

    一 nodejs不支持ES6模块化规范的解决方案 在项目目录下新建src文件夹 xff0c src文件夹下新建m1 js模块和app js模块 xff1a m1 js模块中到处数据 xff1a export let name 61 34 n
  • yarn /nmp全局安装后,命令不生效

    yarn 全局安装后 xff0c 命令不生效 解决方法如下文章 nmp全局安装后 xff0c 命令不生效 xff08 通过链接查询解决办法 16条消息 安装Babel提示babel 不是内部或外部命令 xff0c 也不是可运行的程序 或批处
  • nodeJS中使用promise实现文件读取、写入的案例

    31 使用promise实现之前文件读取的案例 在引用util模块采用 xff1a 遵循常见的错误优先的回调风格的函数 xff08 也就是将 err value 61 gt 回调作为最后一个参数 xff09 xff0c 并返回一个返回 pr
  • nodeJS中对Promise模块介绍

    1 Promise 简介 Promise 是异步编程的一种解决方案 xff0c 比传统的解决方案 回调函数和事件 更合理和更强大 它由社区最早提出和实现 xff0c ES6 将其写进了语言标准 xff0c 统一了用法 xff0c 原生提供了
  • nodeJS中promise对象对结果简便输出办法(建议使用异步终极方案 async+await)

    一 promise对象利用all 方法实现简洁输出 const fs 61 require 34 fs 34 const path 61 require 34 path 34 const util 61 require 34 util 34
  • Http协议简介(底层原理讲解)

    一 Http协议简介 HTTP协议就是超文本传输协议 HyperText Transfer Protocol 通俗理解是浏览器和web服务器传输数据格式的协议 HTTP协议是一个应用层协议 HTTP协议是基于TCP协议的 xff0c 发送数
  • ThinkPHP代码生成器快速开发框架:ThinkPHP+VUE+APIdoc+Restful+Oauth2.0+代码生成器+系统基础功能(用户管理、菜单管理、角色管理、权限管理、字典管理、部门管理)

    Wedo快速开发框架 https github com weidong100 Wedo 根据数据表 xff0c 快速生成控制器 模型 VUE界面 接口文档 xff01 系统组成 xff1a PHP框架使用ThinkPHP5 xff0c 官网
  • Echarts3 主题设置

    前言 现在此感谢百度Echarts团队提供的这款优秀的开源产品 Echarts是一款原生js写的图表类库 xff0c Echarts能为我们打造一款数据可视化平台提供了良好的图表支持 在如今的前端开发中 xff0c 站点样式主题css 是要
  • 谷歌浏览器开发者工具的使用(掌握!)

    谷歌浏览器开发者工具的使用 xff08 掌握 xff01 xff09 元素 Elements 用于查看或修改HTML元素的属性 CSS属性 监听事件 断点等 控制台 Console 控制台一般用于执行一次性代码 查看JavaScript对象
  • nodeJS中ajax技术

    一 AJAX技术简介 AJAX 即 Asynchronous JavaScript and XML xff08 异步的 JavaScript 与 XML 技术 xff09 xff0c 指的是一套综合了多项技术的浏览器端网页开发技术 AJAX