当前位置: 首页 > news >正文

2025 js——面试题(7)——ajax相关

题目:

一、手写一个简易的AJAX?

结合promise

jquery和Ajax

xhr.readyState:

0-UNSET 尚末调用 open 方法
1-OPENED open 方法已被调用
2-HEADERS RECEIVED send 方法已被调用,header 已被接收
3-LOADING 下载中,responseText 已有部分内容
4-DONE 下载完成

xhr.status:

2xx-表示成功处理请求,如 200
3xx-需要重定向,浏览器直接跳转,如 301 302 304
4xx-客户端请求错误,如 404 403
5xx-服务器端错误

二、JSONP

1.访间 https://imooc.com/服务端一定返回一个 html文件吗 ?
2.服务器可以任意动态拼接数据返回,只要符合 html格式要求
3.同理于<script src= “https://imooc.com/getData.js

JSONP实现原理:

1.<script>可绕过跨域限制
2.服务器可以任意动态拼接数据返回
3.所以,<script>就可以获得跨域的数据,只要服务端愿意返回

 三、跨域常用的实现方式?

1.JSONP

2.CORS-服务器设置 http header(后端写)

四、fetch的基本使用

五、cookie

1.本身用于浏览器和server 通讯

2.被“借用到本地存储来”

3.可用document.cookie='...'来修改

限制:

     存储大小:最大只能存储4KB 

                       http请求时需要发送到服务器,增加请求数据量

                       只能用document.cookie='...'来修改,太过简陋

六、localStorage 和 sessionStorage

HTML5专门为存储设计的,最大可寸5M

API简答易用,setItem.getItem

不会被http请求发送出去

区别:

localStorage 数据会永久存储,除非代码或手动删除
sessionStorage 数据只存在于当前会话,浏览器关闭则清空

七、三者存储的区别

特性CookielocalStoragesessionStorage
存储大小4KB 限制5-10MB5-10MB
有效期可设置过期时间(会话或长期)永久存储(需手动清除)当前会话(窗口关闭即清除)
数据传输自动随 HTTP 请求发送到服务器仅客户端存储仅客户端存储
作用域同源且可设置路径 /domain同源所有窗口共享同源且同一窗口(标签页)
典型场景身份验证(如 JWT、session ID)长期缓存(如主题设置)临时数据(如表单进度)
安全风险易受 XSS、CSRF 攻击仅 XSS(不参与请求)仅 XSS(不参与请求)
API 复杂度手动解析字符串(复杂)简单的键值对操作简单的键值对操作

高级提示:

  1. 性能优化:避免在 Cookie 中存储大量数据,减少 HTTP 请求体积。
  2. 安全最佳实践
    • Cookie 设置 HttpOnly 防止 XSS,设置 SameSite 防止 CSRF。
    • localStorage/sessionStorage 需注意敏感数据加密(如使用 CryptoJS)。
  3. 兼容性:IE8+ 支持 localStorage/sessionStorage,Cookie 兼容性最优。
  4. 框架应用:Vue/React 项目中,推荐封装工具函数统一管理存储(如 useLocalStorage Hook)。
http://www.dtcms.com/a/274948.html

相关文章:

  • Linux自动化构建工具(一)
  • AI技术与大模型对比分析:发展趋势、应用场景及挑战
  • UI前端与数字孪生融合新领域:智慧环保的垃圾分类与回收系统
  • LLM场景下的强化学习【GRPO】
  • PCIE set_property问题
  • Java synchronized 锁机制深度解析与实战指南 - 银行转账案例
  • 深度学习超参数调优指南
  • Scrapy入门实战指南:从零开始打造高效爬虫系统
  • 每日算法刷题Day45 7.11:leetcode前缀和3道题,用时1h40min
  • 机器学习之线性回归(七)
  • 安全领域的 AI 采用:主要用例和需避免的错误
  • 基于k8s环境下pulsar高可用测试和扩缩容(上)
  • 基于k8s环境下pulsar高可用测试和扩缩容(下)
  • 线程通信与进程通信的区别笔记
  • CMU15445-2024fall-project1踩坑经历
  • 小米汽车今年6月新车交付超2.5万辆
  • Marin说PCB之Allegro高亮BOM器件技巧详解
  • 格密码--数学基础--03格的基本域与行列式
  • 用AI做带货视频评论分析【Datawhale AI 夏令营】
  • 《P3976 [TJOI2015] 旅游》
  • Guava LoadingCache
  • Apipost 与 Apifox 的 API 调试功能:全面对比与深入分析
  • Vue + Element UI 实现选框联动进而动态控制选框必填
  • 牛客 —— JZ22 链表中倒数最后k个结点
  • 前端八股-promise
  • FreeRTOS踩坑小记——vTaskList函数的使用
  • Activiti:activiti-app.war持久化功能实现
  • AI优化器美国VPS集成:智能算力部署与性能调优指南
  • (补充)RS422
  • Mysql:分库分表