Ajax:跨域、防抖和节流、HTTP协议
在善意的“双向奔赴”中,每个普通人都如星辰,微小但释放着自己的光芒,交织成灿烂的星河
文章目录
- 跨域
- 防抖和节流
- HTTP协议
- HTP状态码以及代表意义
- 错误代码的影响
- 移动的小天使
跨域
- 同源策略
- 概念:协议,域名,端口都一样
- 协议:例如 http或者https
- 域名:例如 www.bai.com
- 端口:http协议默认端口是80,https默认端口是443
- 概念:协议,域名,端口都一样
- 两个非同源的URL带来的影响
- 无法读取非同源网页的cookie、LocalStorage和IndexedDB
- 无法接触非同源网页的dom
- 无法向非同源地址发送ajax请求 (可以去请求,浏览器会阻止接收结果)
- 跨域
- 概念:违反了同源策略的ajax请求
- 实现跨域
- JSONP
- 步骤
- 随便准备一个函数,用于接收服务器返回的结果
- 函数要有一个形参,形参就是服务器返回的结果
- 定义一个script标签,标签的src指向接口地址
- 必须执行callback函数,函数的值是前面准备好的函数名
- 随便准备一个函数,用于接收服务器返回的结果
- 原理:当请求接口之后,接口返回一段调用函数的代码,调用的函数(就是我们准备好的函数)就是向接口发送请求时携带的callback函数
- 步骤
- 安装第三方包
- CORS (跨资源共享)
- 服务器代理
- 用node.js中间件代理跨域
Access-Control-Allow-Origin: '*'
- JSONP
防抖和节流
- 防抖
- 概念:防抖策略是当事件被触发后,延迟n秒在执行回调,如果在n秒内事件又被触发,则重新计时
- 实现步骤
- 设置
var timer = null
放抖动的timer - 判断timer是否为null,如果不为null则清除定时器
- 设置定时器,约定一段时间后执行某些功能函数
- 设置
- 节流
- 概念:节流策略可以减少一段时间内事件的触发频率 (减少事件内部代码的执行次数)
- 实现步骤
- 设置节流阀
var timer = null
- 事件内部判断timer,如果timer不为null (说明有一个定时器正在执行),则return
- 设置定时器,在定时器内部编写程序代码,并且打开节流阀
timer = null
- 设置节流阀
- 总结
- 防抖:如果事件被频繁触发,防抖能保证只有最后一次触发生效,前面N多次的触发都会被忽略
- 节流:如果事件被频繁触发,节流能够减少事件触发的频率,因此,节流是有选择性的执行一部分事件
HTTP协议
- 概念:HTTP是超文本传输协议,协议规定了客户端与服务器交互数据时,数据的格式
- 请求消息
- 请求行 (请求方式、请求的url、协议的版本)
- 请求头 (由多行键值对组成)
Content-Type
告诉服务器提交的数据是什么格式的User-Agent
告诉服务器发送到请求的浏览器是什么浏览器
- 请求体 (提交的数据就是请求体 GET方式没有请求体,POST方式才有请求体)
- 响应消息
- 响应行 (协议及版本)
- 响应头 (
Content-Type:application/json;charset=utf-8
服务器告诉浏览器返回的数据是什么格式的) - 响应体 (返回的主要内容就是返回的数据,可以在network->请求->response查看)
HTP状态码以及代表意义
- 200:请求成功
- 201:添加成功
- 304:请求的资源没有改变 (去缓存中取数据即可)
- 400:请求的格式不对 (最有可能得原因是请求参数写错了)
- 404:请求的资源不存在 (url地址可能错误)
- 500:服务器内部错误
错误代码的影响
- 分类
- 解析代码时的错误 (语法、词法错误)
- 运行代码时的错误 (调用函数等等)
- 错误对当前script代码段的影响
- 解析代码时的错误会导致整个script代码全部瘫痪
- 运行代码时的错误会导致错误之前的代码能够执行,错误之后的代码不能执行
注意:两个没有关系的script代码段前一个script代码段无论发生什么都不会影响后面的script代码段
移动的小天使
<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="jquery.js"></script><style>img {position: absolute;}</style>
</head><body><img src="angel.gif" alt=""><script>// 1.设置节流阀var timer = null// 2.事件内部,判断timer,如果不为null(说明有一个定时器正在执行),return$(document).on('mousemove', function (e) {if (timer != null) {return}// 3.设置定时器,定时器内部,编写程序代码.并且打开节流阀 (timer = null)timer = setTimeout(function () {var x = e.pageX // 鼠标距离页面左边的位置var y = e.pageY // 鼠标距离页面上边的位置// 设置img的位置$('img').css({ left: x + 'px', top: y + 'px' })console.log('今天星期三')// 重置timer为null,相当于打开节流阀timer = null}, 30)})</script>
</body></html>
相关文章:

Ajax:跨域、防抖和节流、HTTP协议
在善意的“双向奔赴”中,每个普通人都如星辰,微小但释放着自己的光芒,交织成灿烂的星河 文章目录 跨域防抖和节流HTTP协议HTP状态码以及代表意义错误代码的影响移动的小天使 跨域 同源策略 概念:协议,域名,…...

数据结构(8.2_2)—希尔排序
希尔排序的定义: 第一趟:先将在排序表中根据增量di分别将数组元素分别插入各个子表 ,在进行排序 代码实现: 算法性能分析 稳定性:不稳定! 适用性:仅适用于顺序表,不适用于链表 总…...

Netty笔记
本笔记是看了黑马的Netty进行总结的。想要更详细的可以去看视频 学习netty之前要先打好NIO的基础,可以先去看我的另一篇文章 一、概述 不想看的可以直接跳过 Netty 的地位 Netty 在 Java 网络应用框架中的地位就好比:Spring 框架在 JavaEE 开发中的地位…...

管道燃气监管系统
一、建设目标 建立一个高效、智能、安全的管道燃气监管系统,实现对管道燃气的实时监测、风险预警、事故应急处理和数据分析,确保燃气供应的安全稳定,提高燃气管理的效率和水平。 二、系统架构 感知层 安装压力传感器、流量传感器、温度传感…...

Python语法结构(三)(Python Syntax Structure III)
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:Linux运维老纪的首页…...

08_Linux文件查找技巧:locate、find 和 grep 命令详解
系列文章导航:01_Linux基础操作CentOS7学习笔记-CSDN博客 文章目录 1. locate命令2. grep命令3. find命令 在Linux系统中,文件查找是一项常见的任务。本文将详细介绍三种强大的文件查找命令:locate、find 和 grep,以及它们的使用…...

JAVA 实验六
一: (1) 运行以上尟序并尣以上尟序尜尢一行尥码添加注解,将尟序保存尣e601.java (2) 以上尟序尣类变量是哪一个变量,类尠尞是哪一个尠尞,请找出类变量和类尠尞被使用尜语…...

电脑查不到IP地址是什么原因?怎么解决
在日常使用电脑的过程中,有时会遇到无法查询到电脑IP地址的情况,这可能会影响到网络的正常使用。本文将探讨电脑查不到IP地址的可能原因,并提供相应的解决方案。 一、原因分析 网络连接问题:首先,网络连接不稳定或…...

Axure重要元件三——中继器修改数据
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:中继器修改数据 主要内容:显示编辑内容、表格赋值、修改数据 应用场景:更新行、表单数据行修改 案例展示: 正文…...

应用层——电子邮件、MIME、简单网络管理协议SNMP
电子邮件 电子邮件系统采用三个主要构件组成:用户代理、邮件服务器、电子邮件所需的协议 我们可以简单的认为邮件服务器中有很多邮箱,还有用来缓存再转发邮件的缓存,发送方使用用户代理通过邮件发送协议。例如SMTP将邮件发送给发送方。 邮件服…...

我与C语言二周目邂逅vlog——8.编译和链接
C语言中的编译和链接过程详细总结 1. 概述 C 语言是一种经典的系统级编程语言,其开发过程包括多个阶段,其中最关键的就是编译和链接过程。编译和链接的理解对于掌握 C 语言程序的构建至关重要。在本篇文章中,我们将深入讲解 C 语言的编译和…...

Views Page 视图页面
下图中显示的 Views 页面允许自定义网格级别及其相应的 View。 Views (视图) 页面包含两个主要部分: 关卡设计师;请注意,其他设计器页面为在关卡设计器中选择的 View 提供设置;Properties (属性) 窗口&…...

Win10 IDEA远程连接HBase
Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop(HDFS) 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin/stop-hbase.sh cd /usr/local/hadoop ./sbin/stop-dfs.sh获取虚拟机的ip 虚拟机终端输入 ip a关闭虚拟机…...

1.centos 镜像
centos 它有官网的下载地址:https://vault.centos.org/ 选择想要的版本,我选择 centos7.8 进入到镜像目录 isos 选择 x86_64 选择想要的版本,我选择 CentOS-7-x86_64-DVD-2003.iso 安装就正常安装就行。我选择虚拟机安装。这个参考&…...

electron 操作 cookie
前言:在 Electron 中操作 Cookie 可以使用electron模块提供的session对象来实现。 一、获取 Cookie 通过defaultSession获取默认会话对象,然后调用cookies.get方法并传入要获取 Cookie 的 URL 地址,以获取该 URL 对应的 Cookie。 const el…...

黑马软件测试第一篇_Linux
Linux 操作系统 说明: 所有硬件设备组装完成后的第⼀一层软件, 能够使⽤用户使⽤用硬件设备的软件 即为操作系统 常见分类 桌⾯面操作系统: Windows/macOS/Linux移动端操作系统: Android(安卓)/iOS(苹果)服务器器操作系统: Linux/Windows Server嵌⼊入式操作系统: Android(底…...

npm run dev 启动前端项目的原理
在一个使用 Vite 构建工具的 Vue 项目中,当你运行 npm run dev 时,实际执行的命令是 vite。为了理解这一过程,我们需要了解几个关键点: package.json 文件中的 scripts 字段: "scripts": {"dev": "vite&…...

【2024年SCI一区新算法:黑翅鸢优化算法 】分布式电网故障定位
1 场景介绍 使用10节点网络 2 故障设置 分为单重故障和两重故障 %% 2 故障设置 %% 1)单重故障 I[1,-1,0,0,-1,-1,0,0,-1,-1]; % 区段1故障 节点状态实际编码(是否流过故障电流) % I[1,1,0,0,-1,-1,0,0,-1,-1]; % 区段2故障 % I[…...

PyTorch 中 12 种张量操作详解
创作不易,还请各位同学三连点赞!!收藏!!转发!!! 对于刚入门学习Python还找不到方向的小伙伴可以试试我的这份学习方法和籽料,免费自取!! PyTorc…...

雷池WAF自动化实现安全运营实操案例终极篇
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...

微信小程序实现canvas电子签名
一、先看效果 小程序canvas电子签名 二、文档 微信小程序canvas 组件文档 微信小程序canvas API文档 H5Canvas文档 三、分析 1、初始话Canvas容器 2、Canvas触摸事件,bindtouchstart(手指触摸动作开始)、bindtouchmove(手指触摸…...

【SpringCloud】Seata微服务事务
Seata微服务事务 分布式事务问题:本地事务分布式事务演示分布式事务问题:示例1 分布式事务理论CAP定理一致性可用性分区容错矛盾 Base理论解决分布式事务的思路 初识SeataSeata的架构部署TC服务微服务集成Seata引入依赖配置TC地址 其他服务 动手实践XA模…...

重新阅读《马说》,感悟“伯乐相马”背后的被选择与选择的大智慧
“初闻不识曲中意,再听已是曲终人”。世有伯乐,然后有千里马。千里马常有,而伯乐不常有。无论你是考研考公等考试大军中的一员,还是已步入社会的打工人或者领导,当你面临被人选择或者选择人时,皆可从《马说…...

深入拆解TomcatJetty(三)
深入拆解Tomcat&Jetty(三) 专栏地址:https://time.geekbang.org/column/intro/100027701 1 Tomcat组件生命周期 Tomcat如何如何实现一键式启停 Tomcat 架构图和请求处理流程如图所示: 对组件之间的关系进行分析,…...

MySQL 实现简单的性能优化
一:硬件优化 更高的网络带宽:在处理大规模的远程请求时可以提高MySQL服务器的响应速度; 更大的内存空间:有助于缓存更多的数据库数据,减少磁盘I/O操作,提高整体性能; 换用企业级SSD࿱…...

AB包资源管理器
简介 ABMgr(Asset Bundle Manager)类是一个用于管理 Unity 中 AssetBundle 资源加载的管理器。它通过字典缓存和管理加载的 AB 包,同时支持同步和异步加载。还包含了卸载和清理 AB 包的方法。 功能解析: 主包加载与依赖管理&…...

Centos7源报错问题
原因:是因为centos7在024年6月份停止维护,导致默认镜像不能使用,更改镜像即可mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/…...

Openlayers高级交互(2/20):清除所有图层的有效方法
Openlayers项目中,经常会放置很多的图层,在业务操作的时候,会做出删除所有图层的行为。这里面给出了一个详细的方法,能够有效的解决 清除所有图层的问题。 效果图 专栏名称内容介绍Openlayers基础实战 (72篇ÿ…...

黑马JavaWeb-day02
什么是JavaScript? JavaScript:简称Js,是一门跨平台、面向对象的脚本语言。是用来控制网页行为的,它能使网页可交互 JavaScript和Java是完全不同的语言,无论是概念还是设计。但是基础语法类似。 JavaScript JavaScript引入方式…...

laravel清除不同缓存
1、清除应用程序缓存: php artisan cache:clear2、清除路由缓存: php artisan route:cache3、清除配置缓存: php artisan config:cache4、清除编译后的视图文件: php artisan view:clear5、清除事件和监听器缓存: ph…...