AJAX常见面试题,面试必备

article/2025/9/17 9:47:56

什么是AJAX,为什么要使用Ajax

AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。、

客户端与服务器,可以在【不必刷新整个浏览器】的情况下,与服务器进行异步通讯的技术

AJAX应用和传统Web应用有什么不同?

AJAX应用和传统Web应用有什么不同?

  • 传统的web前端与后端的交互中,浏览器直接访问Tomcat的Servlet来获取数据。Servlet通过转发把数据发送给浏览器

  • 当我们使用AJAX之后,浏览器是先把请求发送到XMLHttpRequest异步对象之中,异步对象对请求进行封装,然后再与发送给服务器。服务器并不是以转发的方式响应,而是以流的方式把数据返回给浏览器

  • XMLHttpRequest异步对象会不停监听服务器状态的变化,得到服务器返回的数据,就写到浏览器上【因为不是转发的方式,所以是无刷新就能够获取服务器端的数据】

 

这里写图片描述

 

请介绍一下XMLhttprequest对象

请介绍一下XMLhttprequest对象

Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。通过XMLHttpRequest对象,Web开发人员可以在页面加载以后进行页面的局部更新

介绍一下XMLHttpRequest对象的常用方法和属性

方法

  • open()(String method,String url,boolean asynch,String username,String password)

  • send(content)

  • setRequestHeader(String header,String value)

  • getAllResponseHeaders()

  • getResponseHeader(String header)

  • abort()

常用的方法就是黑色粗体的前三个

  • open():该方法创建http请求

    • 第一个参数是指定提交方式(post、get)

    • 第二个参数是指定要提交的地址是哪

    • 第三个参数是指定是异步还是同步(true表示异步,false表示同步)

    • 第四和第五参数在http认证的时候会用到。是可选的

  • setRequestHeader(String header,String value):设置消息头(使用post方式才会使用到,get方法并不需要调用该方法)

    • xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

  • send(content):发送请求给服务器

    • 如果是get方式,并不需要填写参数,或填写null

    • 如果是post方式,把要提交的参数写上去

属性

  • onreadystatechange:请求状态改变的事件触发器(readyState变化时会调用此方法),一般用于指定回调函数

  • readyState:请求状态readyState一改变,回调函数被调用,它有5个状态

    • 0:未初始化

    • 1:open方法成功调用以后

    • 2:服务器已经应答客户端的请求

    • 3:交互中。Http头信息已经接收,响应数据尚未接收。

    • 4:完成。数据接收完成

       

  • responseText:服务器返回的文本内容

  • responseXML:服务器返回的兼容DOM的XML内容

  • status:服务器返回的状态码

  • statusText:服务器返回状态码的文本信息

上面有两个地方都提及了回调函数,回调函数是什么??

回调函数就是接收服务器返回的内容!

 

这里写图片描述

 

Ajax的实现流程是怎样的?

Ajax的实现流程是怎样的?

  • (1)创建XMLHttpRequest对象,也就是创建一个异步调用对象.

  • (2)创建一个新的HTTP请求,并指定该HTTP请求的方法、URL及验证信息.

  • (3)设置响应HTTP请求状态变化的函数.

  • (4)发送HTTP请求.

  • (5)获取异步调用返回的数据.

  • (6)使用JavaScript和DOM实现局部刷新.

javascript ¨K0K

AJAX请求总共有多少种CALLBACK

AJAX请求总共有多少种CALLBACK

Ajax请求总共有八种Callback

  • onSuccess

  • onFailure

  • onUninitialized

  • onLoading

  • onLoaded

  • onInteractive

  • onComplete

  • onException

XMLHttpRequest对象在IE和Firefox中创建方式有没有不同。

有,IE中通过new ActiveXObject()得到,Firefox中通过newXMLHttpRequest()得到

  • 当然了,我们一般使用jquery封装好的ajax方法,那就没有那么麻烦了。

AJAX有哪些有点和缺点?

AJAX有哪些有点和缺点?

优点:

  • 1、最大的一点是页面无刷新,用户的体验非常好。

  • 2、使用异步方式与服务器通信,具有更加迅速的响应能力。

  • 3、可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,ajax的原则是“按需取数据”,可以最大程度的减少冗余请求,和响应对服务器造成的负担。

  • 4、基于标准化的并被广泛支持的技术,不需要下载插件或者小程序。

缺点:

  • 1、ajax不支持浏览器back按钮。

  • 2、安全问题 AJAX暴露了与服务器交互的细节。

  • 3、对搜索引擎的支持比较弱。

  • 4、破坏了程序的异常机制。

  • 5、不容易调试。

请解释一下 JavaScript 的同源策略。

请解释一下 JavaScript 的同源策略。

同源策略是客户端脚本(尤其是Javascript)的重要的安全度量标准。它最早出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不同源装载。所谓同源指的是:协议,域名,端口相同,同源策略是一种安全协议,指一段脚本只能读取来自同一来源的窗口和文档的属性

阐述一下异步加载JS。

阐述一下异步加载JS。

  1. 异步加载的方案: 动态插入 script 标签

  2. 通过 ajax 去获取 js 代码,然后通过 eval 执行

  3. script 标签上添加 defer 或者 async 属性

  4. 创建并插入 iframe,让它异步执行 js

参考资料:

  • https://www.cnblogs.com/zichi/p/4597766.html

  • https://www.cnblogs.com/xkloveme/articles/7569426.html

如何解决跨域问题?

如何解决跨域问题?

理解跨域的概念:协议、域名、端口都相同才同域,否则都是跨域

出于安全考虑,服务器不允许ajax跨域获取数据,但是可以跨域获取文件内容。

  • 所以基于这一点,可以动态创建script标签,使用标签的src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,【JSONP】

  • 在后端上配置可跨域【CORS方式】

  • 前端ajax请求的是本地接口,本地接口接收到请求后向实际的接口请求数据,然后再将信息返回给前端【代理方式】

AJAX跨域的问题可参考下一篇文章

Ajax 解决浏览器缓存问题?

Ajax 解决浏览器缓存问题?

  • 1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。

  • 2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。

  • 3、在URL后面加上一个随机数: "fresh=" + Math.random();。

  • 4、在URL后面加上时间戳:"nowtime=" + new Date().getTime();。

  • 5、如果是使用jQuery,直接这样就可以了 $.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓存记录。


http://chatgpt.dhexx.cn/article/IhNjIIWi.shtml

相关文章

Ajax和Axios相关面试题总结

文章目录 Ajax和Axios1.同步请求和异步请求2.fetch、axios、jquery的ajax用法3.JS跨域资源共享(CORS问题)4.Ajax 解决浏览器缓存问题5.ajax 返回的状态6.实现一个 Ajax7.如何实现 ajax 请求,假如我有多个请求,我需要让这些 ajax 请…

面试题 —— Ajax的基本原理总结

前两天面试的时候,面试官问我,你掌握的技能是Ajax,那你给我讲一下它的基本原理吧! 妈呀,瞬间脑子空白。当时在门口背了好久的网络知识点,一时竟然说不吃话,只记得什么异步通信,同步数…

AJAX常见面试题(修订版)

前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y AJAX常见面试题 什么是AJAX,为什么要使用Ajax AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网…

AJAX面试题都在这里

AJAX常见面试题 什么是AJAX,为什么要使用Ajax AJAX是“Asynchronous JavaScript and XML”的缩写。他是指一种创建交互式网页应用的网页开发技术。、 客户端与服务器,可以在【不必刷新整个浏览器】的情况下,与服务器进行异步通讯的技术 AJAX应…

SQL Server2016安装教程

安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文。 注意:安装过程需要电脑连接网络,中途不能断网。 说明:需要安装SQL全部功能则需要先安装JDK,若只需要安装数据库功能的话则…

SQLServer2019安装教程

有手就行的SQL Server 2019超超超超级详细安装教程,你学会了吗? 1. 百度搜索SQL Server进入官网 https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2. 进入首页后鼠标下滑可以看见两个免费版本的sql server,选择需要的版…

SQL server 2017安装教程

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:实用工具🥇 💬个人格言:不断的翻越一座又一座的高山&#xf…

SqlServer2019安装教程-基本安装

SqlServer2019安装教程-自定义安装:https://blog.csdn.net/qq_33556442/article/details/100885939 下载SQL Server 2019 Release Candidate https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2019-rc/ 1.点击【Continue】 2.填写资料再点击【Co…

SQL Server 2016下载及安装教程

目录 一、下载 1.sql server 2016安装包与sp2补丁 ​编辑2.管理工具 二、安装 1.sql server2016 2.补丁SP2安装 三、用管理工具连接sql 一、下载 1.sql server 2016安装包与sp2补丁 下载链接在评论中 2.管理工具 下载链接在评论中 二、安装 1.sql server2016 选中下…

SQL Server2008安装详细教程

1.将光盘文件解压成文件夹格式,(解压过程比较慢,请耐心等待); 2.打开开始菜单的设置; 3.打开设置后,点击更新和安全,然后进入; 4.在Windows安全中心,将…

Sql Server 2019 详细安装教程

Sql Server 2019 详细安装教程 安装完成后校验准备需要设备检查.NET 35 环境自定 jdk 下载 安装完成后校验 该步骤请在以下步骤全部操作完成后再看 参考链接:Sql Server 2019 完成安装后检验使用 准备 需要设备 WIN 10 电脑一台 检查.NET 35 环境 检查.NET35…

【数据库】SQL Server2022安装教程

大家好,我是雷工! 最近需要安装SQLServer数据库,此次安装的是sql_server_2022_developer版本,以下记录安装及配置过程。大家可以参考指正。 一、安装SQL Server步骤: 1、官网下载 SQL Server 2022 Developer。 2、打…

SQLServer安装教程(史上最详细版本)

下载 安装包已上传至百度网盘,安装包里已含注册码,下载地址(含注册码) 链接:https://pan.baidu.com/s/147YRI7DdCqTOTKfe9UNtiA 提取码:6txl 安装过程 1.选择解压目录 2.解压完成后,进入解压…

SQL Server 2008R2安装详细教程(附安装包)

许多人都在苦恼如何安装SQL server,或者找不着安装包,那么这篇文章将带您避坑,解决您的烦恼 安装包如下: 云盘链接: 嗨,请点击我!http://pan.baidu.com/s/1_7sQ9Eky2mGogKe4W0A_6Q 提取码&#…

SQL Server安装下载教程

SQL Server安装下载教程 一、官网下载二、安装1.运行安装包,选择安装类型是“基本”2.选择语言3.选择安装路径4.继续安装SSMS 三、基础配置1.打开SQL Server 2019 配置管理器2.选择SQL Server 网络配置-->MSSQLSERVER的协议-->TCP/IP,启动它3.打开…

SQL Server 2019安装教程(图文)

本章教程,介绍一下SQL Server 2019的安装过程。 SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点。Microsoft SQL Server 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的…

SQL Server 2019下载及安装教程

目录 一、下载 1.sql server 2019安装包 2.管理工具 二、安装 1.sql server2019 2.安装管理工具 三、用管理工具连接sql 一、下载 1.sql server 2019安装包 链接:https://pan.baidu.com/s/1je-24NywXCnFL0OTAMbg2w?pwd2vtv 提取码:2vtv 2.管理…

SqlServer 2019/2022 安装教程(图文)

一、安装sql sever 2019/2022 两个链接都可 Sqlserver2019官网 SqlServer2019下载 https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads https://www.microsoft.com/zh-cn/evalcenter/evaluate-sql-server-2019?filetype EXE1.下载exe 填写信息 2.双击运行官网…

SQL Server 下载安装教程

--------------------------2021.3.9更新---------------------------------------- 有几位读者私聊我遇到了如下问题 针对如上问题“糟糕无法安装SQLServer(setup.exe)” 可以安装如下步骤进行解决: 1.尝试修复 出现这种状况主要原因还是安装过程中没有完整安装或…

SQL SERVER 2019安装教程-最全安装步骤

SqlServer2019安装教程-自定义安装:转载 https://blog.csdn.net/qq_33556442/article/details/100885939 下载SQL Server 2019 Release Candidate https://www.microsoft.com/en-us/evalcenter/evaluate-sql-server-2019-rc/ 1.点击【Continue】 2.填写资料再点击…