AJAX-基本了解和掌握(前端必掌握在后台与服务器交换数据)

这篇具有很好参考价值的文章主要介绍了AJAX-基本了解和掌握(前端必掌握在后台与服务器交换数据)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先前端常听到的有ajax,axios,fetch来与服务器交换数据。我们来了解一下这些都是什么?

目录

第一部分:什么是AJAX?

第二部分:什么是axios?

第三部分 什么是fetch?

第四部分 ajax,axios,fetch的区别

第五部分 细节拓展


第一部分:什么是AJAX?

AJAX:官方释意:Asynchronous JavaScript and XML(异步的 JavaScript 和 XML),针对MVC的编程。

怎么去简单理解AJAX技术:异步的JavaScript和XML

  • 异步:比如有两个请求,A() 如果A请求数据没结束,没得到响应,B()在A()等待服务器响应时也可以执行,这就是异步。
  • XML:是在任何应用程序中读写数据的语言。
  • JavaScript:是一种前端常用web开发语言,其中会使用浏览器XMLHttpRequest的对象读取数据。

简单理解AJAX:就是可以在请求没有结束的同时,仍可以继续多次发送请求,进行数据的读取的操作的一种技术。(重点:不是新的编程语言,而是一种使用现有标准的新方法!!

AJAX技术 特性

  • Ajax 是一种用于创建快速动态网页的技术。
  • Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
  • 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
  • 传统的网页(不使用 Ajax)如果需要更新内容,必须重载整个网页页面。

AJAX技术 应用

  • 在jQuery中对AJAX技术进行了封装,可以使用$ajax()来使用,改方法要引入整个JQuery,且针对于MVC框架来使用;

  • vue和react中常用的axios(),针对MVVM框架;

  • 运用 XHTML+CSS 来表达资讯;

  • 运用 JavaScript 操作 DOM(Document Object Model)来执行动态效果;

  • 运用 XML 和 XSLT 操作资料;

  • 运用 XMLHttpRequest 或新的 Fetch API 与网页服务器进行异步资料交换;

第二部分:什么是axios?

axios:是一个基于promise 的 HTTP 库,可以用在浏览器和 node.js中。  axios本质上也是对原生XHR的封装,只不过它是Promise的实现版本,符合最新的ES规范。对ajax技术的二次封装。

axios 特性

  • 为MVVM框架而生 (vue react)
  • 用于浏览器和node.js的基于Promise的HTTP客户端。
  • 从浏览器制作XMLHttpRequests
  • 让HTTP从node.js的请求
  • 支持Promise API
  • 拦截请求和响应
  • 转换请求和响应数据
  • 取消请求
  • 自动转换为JSON数据
  • 客户端支持防止XSRF
  • 支持并发请求, 从 node.js 创建 http 请求 支持 Promise API 客户端支持防止CSRF。
第三部分 什么是fetch?

fetch是和XMLHttpRequest同级的,XHR(XMLHttpRequests) 和 fetch API是两种最常见的方法,用于从 Web 服务器获取数据。XHR(XMLHttpRequests) 是一种传统的数据请求方式,而 fetch API则代表了现代 Web 开发的新兴标准。

你知道 XHR 和 Fetch 的区别吗? - 掘金 (juejin.cn)

fetch的特点

1、当接收到一个代表错误的 HTTP 状态码时,从 fetch() 返回的 Promise 不会被标记为 reject, 即使响应的 HTTP 状态码是 404 或 500。

2、fetch() 可以接受跨域 cookies。
3、fetch 不会发送 cookies,除非使用了credentials 的初始化选项。

第四部分 ajax,axios,fetch的区别

总结:

  • ajax是一种技术;
  • jquey中使用$.ajax()封装了ajax技术,使用时必须引入juqery,针对的MVC框架; 
  • axios也是封装的ajax技术,可以在vue和react中使用,针对于MVVM框架;
  • XHR(XMLHttpRequests) 和 fetch API是两种最常见的方法,用于从 Web 服务器获取数据。

AJAX-基本了解和掌握(前端必掌握在后台与服务器交换数据),ajax,前端,javascript

第五部分 细节拓展
  • 异步和同步的概念

同步:同步是指一个进程在执行某个请求的时候,如果该请求需要一段时间才能返回信息,那么这个进程会一直等待下去,直到收到返回信息才继续执行下去。
异步:异步是指进程不需要一直等待下去,而是继续执行下面的操作,不管其他进程的状态,当有信息返回的时候会通知进程进行处理,这样就可以提高执行的效率了,即异步是我们发出的一个请求,该请求会在后台自动发出并获取数据,然后对数据进行处理,在此过程中,我们可以继续做其他操作,不管它怎么发出请求,不关心它怎么处理数据。

  • jquery.ajax()官网和 axios()的官网

jquery.ajax()官网jQuery.ajax() |jQuery API 文档https://api.jquery.com/Jquery.ajax/

 axios()的官网

起步 | Axios中文文档 | Axios中文网 (axios-http.cn)https://www.axios-http.cn/docs/intro

  • CSRF

CSRF(Cross-site request forgery)跨站请求伪造(缩写为XSRF/CSRF),举例:攻击者盗用了你的身份,以你的名义发送恶意请求,CSRF能够做的事情包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。

AJAX-基本了解和掌握(前端必掌握在后台与服务器交换数据),ajax,前端,javascript

CSRF攻击是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的

CSRF的防御

CSRF的防御可以从服务端客户端两方面着手,防御效果是从服务端着手效果比较好,现在一般的CSRF防御也都在服务端进行。

服务端进行CSRF防御

服务端的CSRF方式方法很多样,但总的思想都是一致的,就是在客户端页面增加伪随机数。一般使用都是在请求中添加Token,CSRF不能获取到请求头中的token,只能使用浏览器的cookie,所以就不能进行CSRF攻击了。

总结:CSRF是恶意网站,通过用户的点击,使用用户的Cookie,来去访问第三方网站,解决方法,请求时加上随机数Token,在访问恶意网站时,是不会带上这些token的,所以恶意网站就无法盗用身份去请求第三方网站,举例:你去朋友家做客,朋友给你一把钥匙,你放门垫下面,小偷看到了,也可以用这把钥匙,后来朋友家做了升级,钥匙上加了人脸识别,把你的脸录入门锁,每次只有你的脸才可以开门,小偷拿不到你的脸,只要钥匙,就没法进去了。人脸信息就相当于token。钥匙就相当于cookie。小偷相当于恶意网站,朋友相当于第三方网站。

  • MVC框架和MVVM框架

MVVM是Model-View-ViewModel的简写。 它本质上就是MVC 的改进版,整体和mvc差不多,最大的区别就是 mvc是单向的,而mvvm是双向的,并且是自动的,也就是数据发生变化自动同步视图,视图发生变化自动同步数据 ,同时解决了 mvc 中大量的 DOM 操作使页面渲染性能降低,加载速度变慢,影响用户体验

MVC框架:MVC框架即Model View Controller,是模型Model-视图View-控制器Controller的缩写。

  • Model:模型,是应用程序中用于处理数据逻辑的部分,通常模型对象负责在数据库中存取数据。
  • View:视图,用户界面显示,通常视图是根据模型数据创建的。
  • controller:控制器,数据模型和视图之间通信的桥梁。控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

MVC思想:Controller负责将Model的数据用View显示出来。

MVC优点:耦合度低(运用MVC的应用程序的三个部件是相互独立的,改变其中一个不会影响其他两个);重用性高(多个视图可以使用同一个模型,生命周期成本低部署快(业务分工明确)可维护性高

缺点:不适合小型项目开发,视图与控制器联系过于紧密,妨碍了它们的独立重用

MVVM框架:由Model,View,ViewModel三部分构成。

  • M(Model):数据模型(Vue的data)
  • V(View):视图,即UI,用来展示数据(Vue的el)
  • ViewModel:是一个对象,用来同步视图View和模型Model

MVVM思想:双向绑定,View和Model之间没有直接联系,通过ViewModel进行交互(即双向数据绑定),View的变化可以引起Model的变化,Model的变化也可以引起View变化(类似于浅拷贝)。通过双向数据绑定,View 和 Model 之间的同步工作完全是自动的,因此开发过程中不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

可以实现双向绑定的标签:Input,textarea,select标签等(可以输入或改变标签内容的标签)

MVVM优点:低耦合,可重用性,双向数据绑定,它实现了View和Model的自动同步,Vue就是使用的MVVM框架。

MVVM与MVC的区别:MVVM和MVC都是一种设计思想。MVVM与MVC最大的区别就是:它实现了View和Model的自动同步(当Model属性改变时,不用手动操作Dom元素去改变View的显示。而是改变属性后,该属性对应View的显示会自动改变)

本文有不足的地方,欢迎反应和提醒,会持续更新优化该文章文章来源地址https://www.toymoban.com/news/detail-791125.html

到了这里,关于AJAX-基本了解和掌握(前端必掌握在后台与服务器交换数据)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 服务器与Ajax

    Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 术语ajax最早产生于2005年,Ajax表示Asynchronous JavaScript and XML(异步JavaScript和XML),但是它不是像HTML、JavaScript或CSS这样的一种“正式的”技术,它是表示一些技术的混合交互的一个术语(JavaScript、Web浏览器和Web服务器),它使我

    2024年02月20日
    浏览(25)
  • 使用ajax向服务器发起post请求(提交数据给服务器)

     一、jQuery中发起Ajax请求的三种方法:        功能 简介:         1、$get():功能单一,专门用来发起get请求,从而将服务器上的资源“请求”到客户端来进行使用。         2、$post():功能单一,专门用来发起post请求,从而向服务器“提交”数据。         3、$ajax():是

    2024年02月12日
    浏览(35)
  • ajax 如何从服务器上获取数据?

    在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的响应和更好的用户体验。 要使用AJAX从服务器获取数据,你需要执行以下步骤:

    2024年02月21日
    浏览(29)
  • 第10章 Web服务器与Ajax

    学习目标 熟悉Web基础知识,能够说出Web服务器、URL和HTTP的概念 熟悉什么是Node.js,能够说出Node.js的作用 掌握Node.js的下载和安装,能够独立完成Node.js的下载和安装 熟悉什么是Express,能够说出Express的作用 掌握Express的安装,能够使用node命令完成Express的安装 掌握如何使用Ex

    2024年01月19日
    浏览(29)
  • 服务器后台运行程序

    要让代码在服务器后台运行,有多种方法。在 Linux 系统中,最常见的有以下几种方式: **1. 使用 `` 符号:** 在命令后面添加 `` 符号可以让程序在后台运行。例如: 但是这种方式存在一个问题:当您退出 shell 时,程序会被杀掉。 **2. 使用 `nohup` 命令:** `nohup` 命令可以让程序

    2024年02月15日
    浏览(38)
  • 服务器后台运行python程序

    当 用户注销 (logout)或者 网络断开 时,终端会收到 HUP(hangup)信号从而关闭其所有子进程(包括sshd及其子进程)。因此,我们的解决办法就是让进程忽略 HUP 信号. nohup 就是让提交的命令忽略 hangup 信号,从而当ssh连接状态断开时,不会被系统中断掉;; nohup 命令只需在要处理

    2024年02月06日
    浏览(81)
  • Linux+服务器后台运行程序

    在Linux服务器直接运行程序,程序运行的时间较长,程序经常会因为网络连接问题异常终止,一直盯着程序运行又费时费力,这时后台运行程序是更好的解决方式。But,如果服务器重启了,那所有进程都断掉了,只能重新跑代码。 screen 假如遇到一些比较费时间的程序,但是又

    2024年02月22日
    浏览(35)
  • thinkphp5实现ajax图片上传,压缩保存到服务器

    thinkphp压缩图片插件官方地址 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image 另外一种方法,传递base64图片,提交图片数据的字符串

    2024年02月07日
    浏览(39)
  • Codespaces个性化后台服务器配置指南

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 在前文《浏览器上写代码,4核8G微软服务器免费用,Codespaces真香》中,咱们以一个Java程序员的视角体验了GitHub的Codespaces产品的beta版,用浏览器编码并运行,体验上接近桌面版vscode,并且还能免费使

    2024年02月12日
    浏览(34)
  • AJAX 使用 JavaScript 的 `XMLHttpRequest` 对象来向服务器发送异步请求

    AJAX 是一种使用异步 HTTP (Ajax) 请求获取和发送数据的技术。它使得网页能够进行异步更新,而不需要重新加载整个页面。通过使用 AJAX,可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。 AJAX 使用 JavaScript 的 XMLHttpRequest 对象来向服务器发送异步请

    2024年01月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包