Rumah > Artikel > hujung hadapan web > AJAX常见面试问题你会多少?ajax的12个常见面试题及其答案
本篇文章主要的讲述了关于ajax的面试题问题和答案,大家可以多看看,看看那些面试的那些人是如何出题的,还有看看正确答案到底是什么。现在就让我们来看这篇文章吧
【相关专题推荐:ajax面试题(2020)】
1.工作当中会和后台交互吗? 那你能说说封装好的 ajax里的几个参数吗 ?
url: 发送请求的地址。
type: 请求方式(post或get)默认为get。
async: 同步异步请求,默认true所有请求均为异步请求。
timeout : 超时时间设置,单位毫秒
data:要求为Object或String类型的参数,发送到服务器的数据
cache:默认为true(当dataType为script时,默认为false), 设置为false将不会从浏览器缓存中加载请求信息。
dataType: 预期服务器返回的数据类型。
可用的类型如下:
xml:返回XML文档,可用JQuery处理。
html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。
script:返回纯文本JavaScript代码。不会自动缓存结果。
json:返回JSON数据。
jsonp:JSONP格式。使用JSONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。
text:返回纯文本字符串。
success:请求成功后调用的回调函数,有两个参数。
(1) 由服务器返回,并根据dataType参数进行处理后的数据。
(2) 描述状态的字符串。
error:要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数
(1) XMLHttpRequest对象
(2) 错误信息
(3) 捕获的错误对象(可选)
complete :function(XMLHttpRequest,status){ //请求完成后最终执行参数
2.json数据 如果怎么处理 他的格式 你以前工作中有没有固定格式 如果我发送一个请求 删除数据里的一条数据 我怎么知道删除成功了 或者说 删除后 会在哪里显示
JSON.parse() 转换为JSON对象,根据数据进行解析,放到页面中。
格式:{} 与 [] 结合拼接的JSON串
发送请求删除数据,后台会返回处理的结果,前台根据返回的结果判断是否成功,然后处理页面元素。
3.有没有遇到过这种情况 在ie浏览器中 后台图片数据已经改变 但是客户端没有发生改变 该怎么处理? 他提示说浏览器的缓存
JQuery.ajax() 方法,设置cache为false,就不会从浏览器缓存中加载请求,
或者利用post方法,请求数据,不会缓存,每次都是重新请求数据
4.选项卡的实现思路
鼠标悬浮时间,调用方法,传入this,对所有的选项卡内容部分隐藏操作,对this的进行显示操作,控制display
5.级联 的实现思路
一般地区数据都是利用二维数组存储,从后台获取到以后存储起来,
根据第一个下拉框的选项,找到对应的二维数组数据,循环new Option() add进下拉框
6. 轮播图的实现思路
第一种:
把图片名称按顺序取好名字,利用定时器,每隔多少秒,更换图片的路径
第二种:
利用无缝滚动的技术,把图片都放入页面中,定时器进行scroll滚动,判断滚动距离取余(%) 图片宽度等于0,暂停定时器,多少秒后再开启定时器。
7.说说你理解中的bootstrap
Bootstrap是基于HTML5和CSS3开发的,它在jQuery的基础上进行了更为个性化和人性化的完善,只需要给标签起上响应的Class名称,就可以形成一套Bootstrap自己独有的网站风格,并兼容大部分jQuery插件。
8.angularjs和JQ的区别
JQ 先获取再使用。
Angularjs 直接使用
9.JQmobile和JQ的区别
jQuery Mobile 是创建移动 web 应用程序的框架。jQuery Mobile 适用于所有流行的智能手机和平板电脑。jQuery Mobile 使用 HTML5 和 CSS3 通过尽可能少的脚本对页面进行布局
(1) jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。
(2) jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等。
(3) jQuery本身注重于后台,没有漂亮的界面,而jQuery UI则补充了前者的不足,他提供了华丽的展示界面,使人更容易接受。既有强大的后台,又有华丽的前台。jQuery UI是jQuery插件,只不过专指由jQuery官方维护的UI方向的插件。
10.ajax的四部:
var xmlhttp = new XMLHttpRequest(); xmlhttp.open("post||get","URL",true||false); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.onreadystatechange = callBack; xmlhttp.send(null);
11.ajax接受到的数据类型是什么?
String
JSON串
JSON对象
12.哪些地方需要ajax,哪些地方不需要,ajax的优点是什么,缺点是什么?
页面不进行跳转刷新的时候,异步处理数据的时候,表单自动补全功能----使用Ajax,
提交后不再使用原页面,可以进行跳转刷新的,查询之类的功能,可以不用Ajax
优点:
<1>.无刷新更新数据。
AJAX最大优点就是能在不刷新整个页面的前提下与服务器通信维护数据。这使得Web应用程序更为迅捷地响应用户交互,并避免了在网络上发送那些没有改变的信息,减少用户等待时间,带来非常好的用户体验。
<2>.异步与服务器通信。
AJAX使用异步方式与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力。优化了Browser和Server之间的沟通,减少不必要的数据传输、时间及降低网络上数据流量。
<3>.前端和后端负载平衡。
AJAX可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。并且减轻服务器的负担,AJAX的原则是“按需取数据”,可以最大程度的减少冗余请求和响应对服务器造成的负担,提升站点性能。
<4>.基于标准被广泛支持。
AJAX基于标准化的并被广泛支持的技术,不需要下载浏览器插件或者小程序,但需要客户允许JavaScript在浏览器上执行。随着Ajax的成熟,一些简化Ajax使用方法的程序库也相继问世。同样,也出现了另一种辅助程序设计的技术,为那些不支持JavaScript的用户提供替代功能。
<5>.界面与应用分离。
Ajax使WEB中的界面与应用分离(也可以说是数据与呈现分离),有利于分工合作、减少非技术人员对页面的修改造成的WEB应用程序错误、提高效率、也更加适用于现在的发布系统。
缺点:
<1>.AJAX干掉了Back和History功能,即对浏览器机制的破坏。
在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面。一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中,这将无法实现。
后退按钮是一个标准的web站点的重要功能,但是它没法和js进行很好的合作。这是Ajax所带来的一个比较严重的问题,因为用户往往是希望能够通过后退来取消前一次操作的。那么对于这个问题有没有办法?答案是肯定的,用过Gmail的知道,Gmail下面采用的Ajax技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变Ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)
但是,虽然说这个问题是可以解决的,但是它所带来的开发成本是非常高的,并与Ajax框架所要求的快速开发是相背离的。这是Ajax所带来的一个非常严重的问题。
一个相关的观点认为,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中。该问题的解决方案也已出现,大部分都使用URL片断标识符(通常被称为锚点,即URL中#后面的部分)来保持跟踪,允许用户回到指定的某个应用程序状态。(许多浏览器允许JavaScript动态更新锚点,这使得Ajax应用程序能够在更新显示内容的同时更新锚点。)这些解决方案也同时解决了许多关于不支持后退按钮的争论。(想看更多就到PHP中文网AJAX开发手册栏目中学习)
<2>.AJAX的安全问题。
AJAX技术给用户带来很好的用户体验的同时也对IT企业带来了新的安全威胁,Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于Credentials的安全漏洞等等。
<3>.对搜索引擎支持较弱。
对搜索引擎的支持比较弱。如果使用不当,AJAX会增大网络数据的流量,从而降低整个系统的性能。
<4>.破坏程序的异常处理机制。
至少从目前看来,像Ajax.dll,Ajaxpro.dll这些Ajax框架是会破坏程序的异常机制的。关于这个问题,曾在开发过程中遇到过,但是查了一下网上几乎没有相关的介绍。后来做了一次试验,分别采用Ajax和传统的form提交的模式来删除一条数据……给我们的调试带来了很大的困难。
<5>.违背URL和资源定位的初衷。
例如,我给你一个URL地址,如果采用了Ajax技术,也许你在该URL地址下面看到的和我在这个URL地址下看到的内容是不同的。这个和资源定位的初衷是相背离的。
<6>.AJAX不能很好支持移动设备。
一些手持设备(如手机、PDA等)现在还不能很好的支持Ajax,比如说我们在手机的浏览器上打开采用Ajax技术的网站时,它目前是不支持的。
<7>.客户端过肥,太多客户端代码造成开发上的成本。
编写复杂、容易出错;冗余代码比较多(层层包含js文件是AJAX的通病,再加上以往的很多服务端代码现在放到了客户端);破坏了Web的原有标准。
本篇文章到这就结束了(想看更多就到PHP中文网AJAX使用手册栏目中学习),有问题的可以在下方留言提问。
Atas ialah kandungan terperinci AJAX常见面试问题你会多少?ajax的12个常见面试题及其答案. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!