我的编程空间,编程开发者的网络收藏夹
学习永远不晚

AJAX常见面试题有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

AJAX常见面试题有哪些

这篇文章主要介绍了AJAX常见面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

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

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

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

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

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

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

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

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

AJAX常见面试题有哪些这里写图片描述

请介绍一下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:未初始化

    • open方法成功调用以后

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

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

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

    • AJAX常见面试题有哪些

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

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

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

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

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

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

AJAX常见面试题有哪些这里写图片描述

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有哪些有点和缺点?

优点:

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

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

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

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

缺点:

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

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

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

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

  • 不容易调试。

请解释一下 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标签,使用标签的class="lazy" data-src属性访问js文件的形式获取js脚本,并且这个js脚本中的内容是函数调用,该函数调用的参数是服务器返回的数据,为了获取这里的参数数据,需要事先在页面中定义回调函数,在回调函数中处理服务器返回的数据,【JSONP】

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

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

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

Ajax 解决浏览器缓存问题?

Ajax 解决浏览器缓存问题?

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

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

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

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

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

感谢你能够认真阅读完这篇文章,希望小编分享的“AJAX常见面试题有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网行业资讯频道,更多相关知识等着你来学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

AJAX常见面试题有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

AJAX常见面试题有哪些

这篇文章主要介绍了AJAX常见面试题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是AJAX,为什么要使用AjaxAJAX是“Asynchronous JavaSc
2023-06-04

Vue常见面试题有哪些

这篇文章将为大家详细讲解有关Vue常见面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、对于MVVM的理解MVVM 是 Model-View-ViewModel 的缩写。Model代表数据模型
2023-06-14

Bootstrap常见面试题有哪些

这篇“Bootstrap常见面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Bootstrap常见面试题有哪些”文
2023-06-27

Python有哪些常见面试题

这篇文章主要讲解了“Python有哪些常见面试题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python有哪些常见面试题”吧!1. python是如何进行类型转换的?python提供了将变
2023-06-02

MyBatis常见面试题有哪些

这篇文章给大家分享的是有关MyBatis常见面试题有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  1、什么是Mybatis?  Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发
2023-06-04

.net常见面试题有哪些

这篇“.net常见面试题有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“.net常见面试题有哪些”文章吧。1.什么是.N
2023-06-04

Tomcat常见面试题有哪些

这篇文章将为大家详细讲解有关Tomcat常见面试题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Tomcat 的缺省端口是多少,怎么修改?  1)找到 Tomcat 目录下的 conf 文件夹 
2023-06-04

有哪些常见的JavaScript面试题

今天就跟大家聊聊有关有哪些常见的JavaScript面试题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.this指向1.谁调用指向谁例: function foo(){
2023-06-15

Java IO常见面试题有哪些

这篇文章主要为大家展示了“Java IO常见面试题有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java IO常见面试题有哪些”这篇文章吧。1. 什么是IO流?它是一种数据的流从源头流到目
2023-06-19

Python常见的面试题有哪些

本篇内容介绍了“Python常见的面试题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、一行代码实现1--100之和利用sum()函
2023-06-16

常见的laravel面试题有哪些

本篇内容主要讲解“常见的laravel面试题有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“常见的laravel面试题有哪些”吧!1) 什么是 Laravel ?Laravel 是一个开源的
2023-06-29

常见的PHP面试题有哪些

本文小编为大家详细介绍“常见的PHP面试题有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“常见的PHP面试题有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。100 个常见的 PHP 面试题1) PHP是
2023-06-30

有哪些常见的java面试题

这篇文章主要介绍“有哪些常见的java面试题”,在日常操作中,相信很多人在有哪些常见的java面试题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”有哪些常见的java面试题”的疑惑有所帮助!接下来,请跟着小编
2023-06-20

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录