js中对Ajax使用解析与重构

前端 JS 技术深度分析:Vue.js 与 jQuery 摘要: 本文深度对比前端两大技术Vue.js与jQuery。Vue.js作为MVVM框架,采用响应式系统(Vue3使用Proxy重构)和组件化开发(组合式API),适合复杂单页应用;jQuery作为DOM操作库,以链式调用和事件委托为核心,适用于传统网站。关键技术分析涵盖Vue的虚拟DOM优化、jQuery的Sizzle选择器引擎等。实践对比显示,Vue在状态管理、工程化方面优势明显,而jQuery在快速开发上更便捷。最后给出技术选型建议:Vue适合现代化应用,jQuery适合维护旧项目。 阅读详情

Ajax使用思路

Ajax使用思路:
1、创建XMLHttpRequest对象
2、open(“method”,”URL”,asyncFlag)方法创建新的请求。
3、send(content)方法发送请求数据(get方法不需要指定content参数,post方法需要指定参数)
4、onreadystatechange属性设置状态改变时的处理函数(请求成功,返回成功等)
5、处理函数中指定返回成功或返回的处理函数
6、responseXML或resopnseText属性获取服务器返回的参数。

Ajax中常用属性

1、 onreadystatechange: 是指定状态改变时所触发的事件处理器的属性
在AJAX中,每个状态改变时都会触发这个事件处理器,通常会调用一个javascript函数

2、readyState:是XMLRequest对象提供的请求状态属性。该属性提供了5个属性值:
值—>意义
0—>未初始化
1—>正在加载
2—>已加载
3—>交互中
4—>完成
该属性常用于判断请求状态,当请求状态等于4,也就是为完成时,在判断请求是否成功,若成功,将开始处理返回结果。

3、status:表示返回服务器的HTTP状态码属性。返回值为长整型的数值。常用于当请求状态为完成时,判断当前的服务状态是否为成功。
常用的状态码:
100—->继续发送请求
200—->请求已成功
202—->请求被接受但未成功
400—->错误的请求
404—->文件未找到
408—->请求超时
500—->内部服务器错误
501—->服务器不支持当前请求所需要的某个功能

4、responseText:是XMLRequest对象提供的获取服务器响应的属性,表示为字符串。
5、responseXML:是XMLRequest对象提供的获取服务器响应的属性,表示为XML。这个对象可以被解析为一个DOM对象。

Ajax中常用函数

1、 open(“method”,”URL”,asyncFlag);创建新请求的方法
参数说明:
method:指定请求的类型,一般为GET或POST
URL:指定请求的地址。
asyncFlag:为可选参数,用于指定请求方式,异步请求为:true 同步请求为:false; 默认为true;

2、send(content);向服务器发送请求的方法;若为异步请求,则该方法立即返回。否则将等到接受到响应为止。
参数content用于指定发送的数据,可以时DOM对象、输入流或字符串。如果没有参数需要传递可以为null;

3、setRequestHeader(“header”,”value”); 该方法用于为请求的HTTP头设置值。
如:setRequestHeader(“Content-Type”,”application/x-www-form=urlencoded”);

4、abort();停止或放弃当前异步请求的方法。

5、getResponseHeader(“Content-Type”) 该方法用于返回响应的HTTP头部信息的方法
getResponseHeaders() 该方法用于以字符串的形式返回完整的HTTP头信息。包括:Server、Date、Content-Type和Content-Length

AJax重构代码

在用到Ajax的页面直接调用net.AjaxRequest函数并传入相应的参数即可
url:服务器的地址
onload:为请求成功并且服务器返回状态为200(即:成功)时执行的回调处理函数
onerror:服务器返回状态为不为200时,执行的错误处理函数
method:表示请求方式post/get
params:要向服务器传递的参数

// JavaScript Document
var net = new Object();
//编写构造函数
net.AjaxRequest = function (url,onload,onerror,method,params){

    this.req = null;
    this.onload = onload;
    this.onerror = (onerror)?onerror : this.defaultError;
    this.loadDate(url,method,params);
}

//编写用于初始化XMLHttpRequest对象并制定处理函数,最后返回HTTP发送的请求
net.AjaxRequest.prototype.loadDate =function(url,method,params){
    //重构回调函数
    net.AjaxRequest.onReadyState = function (){
        var req = this.req;
        var ready = req.readyState;
        if(ready==4){
            if(req.status == 200){
                this.onload.call(this); 
            }else{
//              alert("状态的");
                this.onerror.call(this);    
            }
        }
    }

    if(!method){
        method = "GET";
    }
    //创建XMLHttpRequest对象req
    if(window.XMLHttpRequest){
        this.req = new XMLHttpRequest();    
    }else if(window.ActiveXObject){
        try{
            this.req = new ActiveXObject("Microsoft.XMLHTTP");  
        }catch(e){
            try{
                this.req = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(e){
                console.log("不支持Ajax");
            }
        }
    }

    /*

     */


    if(this.req){
        try{
            var loader = this;

            /*
                  注意:在指定所触发的事件处理器时,所调用的函数不能添加小括号及指定参数名。不过这里可以使用匿名函数。
                  如下面的代码:
             */

            this.req.onreadystatechange = function(){
                net.AjaxRequest.onReadyState.call(loader);   
            }

            this.req.open(method,url,true);

            if(method == "POST"){
                this.req.setRequestHeader("Content-Type","application/x-www-form=urlencoded");
                this.req.setRequestHeader("x-requested-with","ajax");
            }
            console.log(params.toString());
            this.req.send(params);
        }catch(err){
            this.onerror.call(this);
        }
    }

    //重构默认的错误处理函数
    net.AjaxRequest.prototype.defaultError = function(){
        if(console) {
            console.log("错误数据----请求状态:"+this.req.readyState + "--返回状态--"+this.req.status);  
        }else{
            alert("错误数据----请求状态:"+this.req.readyState + "--返回状态--"+this.req.status);        
        }
    }


}
JavaScript中的AJAX用法及示例代码 本文介绍了JavaScript中的AJAX用法,并提供了一个简单的示例代码。通过AJAX,我们可以在不刷新整个页面的情况下,通过与服务器进行异步通信,实现数据的动态加载和更新。需要注意的是,在实际应用中,您可能需要根据请求的需要设置其他的请求头、发送数据等。在上面的示例中,我们首先创建了一个XMLHttpRequest对象,然后指定了一个回调函数。在进行AJAX请求之前,需要指定一个回调函数,用于在请求完成后处理服务器响应的数据。首先,我们需要创建一个XMLHttpRequest对象,它是AJAX的核心。 阅读详情

相关推荐

脑电分析中的频谱特征提取 —— 从理论到实践

本文系统介绍了脑电信号(EEG)频谱特征提取方法及其应用。EEG信号通过频谱分析可分为Delta、Theta、Alpha、Beta和Gamma等具有明确生理意义的频段。文章详细讲解了功率谱密度、频带功率、相对功率、频谱熵等关键特征的计算方法,并提供了Python实现示例,包括模拟数据和真实CHB-MIT癫痫数据集的处理流程。这些频谱特征在脑机接口、情绪识别、疲劳监测和癫痫检测等领域具有重要应用价值。文章强调频谱特征结合时域和非线性特征可提升分析效果,为EEG研究提供了实用指导。

qq_32516809的博客 1441

ajax 原生js操作ajax

1.不需要插件支持(一般浏览器且默认开启JavaScript即可);2.用户体验极佳(不刷新页面即可获取可更新的数据);3.提升Web程序的性能(在传递数据方面做到按需放松,不必整体提交);4.减轻服务器和带宽的负担(将服务器的一些操作转移到客户端);...

fagdg的博客 1万+

DRAM知识整理系列(三):部分时序参数整理

一、tCL-tRCD-tRP-tRAS(第一时序) 内存是根据行和列寻址的,当请求触发后,最初是tRAS(Active to precharge Delay),预充电后,内存才真正开始初始化RAS(Row Address Strobe)。一旦tRAS激活后,RAS开始进行需要数据的寻址。首先是行地址,然后初始化tRCD(RAS to CAS Delay),周期结束,接着通过CAS(Column Address Strobe)访问所需数据的十六进制地址。其中,从CAS开始到CAS结束,就是CAS延迟(即t

不吃鱼的猫的博客 7万+

js-ajax(js)

一、Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待卡死状态(不能进行其他操作) 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随意做其他事情,不会被卡死(可以进行其他操作) 2.Ajax的运行原理 页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提...

muzidigbig的博客 3783

海康VisionMaster表面缺陷滤波实战:从参数调优到工业检测避坑指南

本文深入探讨海康VisionMaster表面缺陷滤波技术在工业检测中的应用,从参数调优到ROI绘制与Blob分析的协同策略,提供金属外壳、锂电池铝壳等复杂表面的缺陷检测实战指南。通过多级滤波架构和动态ROI生成法,显著提升检出率至98.7%,误检率低于0.5%,为工业质检提供智能化解决方案。

ujm5678901的博客 328

从放弃到再入门之拉格朗日对偶问题推导

普通同学的解法 无约束条件:求导就可以了 等式约束:代入消元,再求导 不等式约束:分情况讨论(在边界上和不在边界上),分别对应1,2的情况 然而发现,有些情况消元特别复杂,甚至不能求解 聪明同学的解法 发现:在最优点的情况下,约束曲面的法向量和目标函数的梯度反向必相同或相反 拉格朗日乘子法如何理解? (在2维里可以形象的解释为z=f(x,y)在约束条件g(x,y)=c中,极值...

qq_34564612的博客 1万+

javascript的ajax

(域名):443(端口号)/course/list(路径)协议、域名、端口号,任何一个不一样,就是不同域与路径无关,路径一不一样无所谓不同域同域。

我管它叫“知勤者笔记”,主要用来记录和分享我的日常生活与学习经历 5481

一文搞懂深度学习:最全神经网络介绍

本文是深度学习系列文章的第二篇,我们将深入探讨各种类型的人工神经网络,探索它们独特的特性和应用。

2402_82802238的博客 2800

JS中的ajax

AJAX 传统的web交换缺点: 1.流量损失 2.浪费时间和带宽 AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 概念: ajax使网页异步刷新,在不重新加载整个页面时,对网页的局部进行刷新。 特点: 局部刷新; 最大的特点:局部刷新 ajax的优点: 1.局部刷新; 2,。优化了浏览器与服务器之间的传输,减少了不必要...

不想写代码的一天 1万+

vue3+vite:引入tailwindcss不生效的原因,详细解决Tailwind配置没问题但就是不生效的情况,配置正确无报错但样式没有生效(包括tailwindcss在Vue2使用不生效解决方案)

vue3 tailwind使用教程以及tailwind不生效的问题,vue3+vite引入tailwindcss不生效的原因,tailwindcss配之后不生效怎么办,如何解决tailwinscss不生效的原因,Vue3项目使用tailwindcss在Vue2使用,不生效解决,如何解决使用 Tailwind CSS 后出现的样式不生效的问题?tailwindcss配之后不生效 tailwindcss不生效,为什么我的 Tailwind css 类没生效,解决使用 Tailwind 时样式不生效的问题,配置没

✅ 精选推荐文章 4128

MyBatis-Plus 实战:敏感字段自动加解密支持模糊查询

本文基于MyBatis-Plus框架提出了一种全链路敏感字段加密方案。通过自定义TypeHandler实现数据入库自动加密和查询自动解密,结合重写LambdaQueryWrapper处理查询条件加密,并适配多种查询方式。方案核心包括:1)AESUtil工具类提供加解密基础能力;2)EncryptTypeHandler实现字段类型转换;3)实体类通过注解配置加密字段。该方案在保证数据安全的同时,对业务代码侵入性小,支持姓名、手机号等敏感信息的全流程加密处理,满足系统开发的安全需求。

蔡定努 596

实习--(八)Ajax、dom与jQuery

最近一段时间在学js,如题所说的Ajax、dom与jQuery。其实也只是略为了解了,并没有怎么练习。先说说dom编程。      DOM实际上是以面向对象方式描述的文档模型。DOM定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。可以把DOM认为是页面上数据和结构的一个树形表示,不过页面当然可能并不是以这种树的方式具体实现。通过 JavaScript,您可以重构整

JONES LAI 494

手把手教你学PCIE(2.1.23)--PCIe基本概念:链路速率协商

链路速率协商是一个多步骤的过程,确保发送端和接收端之间的链路速率设置一致。通过初始化链路速率寄存器、发送和接收 TS2 序列、检测链路对端的存在、交换链路速率信息、确定最大链路速率和配置链路速率,可以确保 PCIe 设备之间的数据传输速度最大化,从而提高数据传输效率。初始化链路速率寄存器:设置支持的最大链路速率。发送和接收 TS2 序列:检测链路对端的存在。交换链路速率信息:发送和支持的最大链路速率。确定最大链路速率:选择最小值作为最终链路速率。配置链路速率:更新链路速率寄存器。

MHD0815的博客 1815

网页开发的阶段总结(一)

近期因为公司业务要求,将公司的用asp编写的网页改换成php编写的网页。 而网页的编写往往是涉及多种语言的编写以及之间的相互交叉使用。 1、 php和ASP都是server的脚本语言。php的格式:<?php ?>, ASP的格式:<% %>,在当中,能够混合使用HTML、脚本语言以及组件来创建serve...

weixin_30306905的博客 72

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaScript之Ajax

JavaScript之Ajax什么是ajax?工作原理优缺点注意点及适用和不适用场景跨域 什么是ajax? Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。 Ajax = 异步 JavaScript 和 XML 或者是 HTML(标准通用标记语言的子集)。 Ajax 是一种用于创建快...

TSORA-C的博客 839

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AJAX原理解析

一.AJAX简介 Ajax并不是一个新生的语言,它是一系列语言的结合体:HTML/XHTML、CSS、DOM、XML、XSLT、XMLHttp、JavaScript。可以说Ajax涉及的知识面的确是很广的,在Web开发中为我们提供了很方便的交互式用户体验模式。 Ajax技术特点: 1) 页面无刷新 2) 不打断用户的操作,用户的体验好。 3) 按需获取数据,浏览器

RowandJJ 2096

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用Bootstrap重构学生管理系统界面

文章目录Bootstrap介绍我对Bootstrap的理解思路项目地址遇到的问题重构index页面修改JS脚本里面的list函数修改JS函数里面的add函数修改JS函数里面的edit函数修改JS函数里面的save函数参考资料 Bootstrap介绍 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML、CSS、JavaScript 开发的简洁、直观、强悍的前端开发框架,使得 Web 开发更加快捷。Bootstrap提供了优雅的HTML和CSS规范

勇敢的兵 2757

Ajax 重构的步骤

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34292287的博客 99

php用ajax渲染页面,在vue.js中如何使用ajax渲染页面

下面我就为大家分享一篇vue.js,ajax渲染页面的实例,具有很好的参考价值,希望对大家有所帮助。关于上次说的用vue.js,zepto,node.js,webpack等技术重构CNode。这是一个比较入门的项目,一般你学完vue就可以上手了,CNode网站有公开的API所以你可以获取这个网站的所有数据接口,然后渲染到页面上,用CSS等加工一下就可以了。起初,我一直感觉好难好难好难,虽然说不出难...

weixin_39572288的博客 237

技术揭秘:如何基于Vue.js与PJAX重构传统WordPress主题架构

Wing主题代表了WordPress主题开发的技术演进方向,通过彻底摒弃jQuery依赖、采用Vue.js组件化架构与PJAX无刷新导航技术,实现了从传统PHP模板渲染到现代化数据驱动SPA体验的完整转型。这款简洁流畅、数据驱动的响应式主题在架构层面解决了传统WordPress主题的性能瓶颈与用户体验问题,为开发者提供了一个高性能、可扩展的现代化主题解决方案。 ## 传统WordPress主题架

gitblog_00266的博客 856

ajax封装成独立模块,编写独立的Ajax / XHR JavaScript微库

无论您是使用网站还是应用程序,您都必须面对处理Ajax请求的任务,无论是获取新文档的内容还是获取更新的JSON数据。您一定会使用某种形式的库来掩盖XHR实现的混乱。有一吨库,还有一些不错的XHR模块可以让你制作简单的XHR。每天使用AngularJS我喜欢使用XHR的语法,而不是他们的$http方法:Angular使它非常简单,美观可读,请注意速记.get()方法。它还附带其他方法,例如.post...

weixin_39944074的博客 784

34 - AJAX与JSON

文章目录一.AJAX是个啥?1.1 概述1.2 同步和异步1.3 JS实现异步请求原理二.JSON是个啥?2.1 概述三.AJAX与JSON的代码格式留疑:引用原文 一.AJAX是个啥? 1.1 概述 说到AJAX,不得不提到一门编程语言----JavaScript诞生于1995年。起初JS的主要目的是处理以前由服务器端负责的一些表单验证。 当时走在技术革新最前沿的Netscape(网景)公司,决定着手开发一种客户端语言,当时就职于Netscape公司的布兰登·艾奇开始着手计划将1995年2月发布的Liv

至尊宝的月光宝盒 223

ajax、反向ajax、jsonp详解

ajax详解 什么是ajax 其实ajax已经属于老技术了,现在几乎没人不会用了,在这里主要是把底层的东西给大家分享一下,以备应对装逼的面试官。 ajax即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在

卡布洛技术专栏 5918

ajax返回request,ajaxRequest解析

刚开始学习ajax,听网上的一下大佬说:ajax要与springMVC使用,让我对这个ajax有恐惧,不过慢慢学习了ajx后其实可以不用springMVC的。说回主题ajaxREquest是一个模板,我们只要在调用时传了正确的参数即可调用AjaxRequest.jsvar net = new Object(); // 定义一个全局变量net// 编写构造函数net.AjaxRequest = fu...

weixin_34205814的博客 1772

js function定义函数使用心得

1.最基本的作为一个本本分分的函数声明使用。 复制代码 代码如下: function func(){} 或 var func=function(){}; 2.作为一个类构造器使用: 复制代码 代码如下: function class(){} class.prototype={}; var item=new class(); 3.作为闭包使

我以我名,行我道! 1038

JavaWeb学习笔记八:Ajax学习,使用Ajax引擎访问服务器,以及Servlet技术中乱码问题的再梳理

1. JavaWeb学习笔记八:Ajax学习 1.1. 同步和异步理解 同步:一般出现在进程和线程里面,比如一个进程需要需要另一个进程的数据才能继续执行,那么该进程只能等待另一个进程执行完后才能执行,这就是同步,在网页上的现象有:点击一个连接后只有该连接响应了才能点击其他链接。 异步:异步和同步相反,就是该进程不需要等待另一个进程执行完,你可以继续执行其他事项,在网页上的现象有:当点击一个连接后...

公子&小白的博客 448
上一篇: oracle数据库SQL语句详解
下一篇: FCKeditor文件上传配置
csdn_JAVA_HL
博客等级 码龄12年 44粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值