codecamp

AJAX面试问题

AJAX面试问题


 下面列出了常见的AJAX面试问题和答案。

1、什么是AJAX?

 AJAX代表异步JavaScript和XML。它是一组用于异步显示数据的相关技术。换句话说,它在不重新加载网页的情况下发送和检索数据。

2、AJAX有哪些优点?

  • 快速回复
  • 带宽利用率
  • 在从服务器检索数据之前,不会阻止用户。
  • 它允许我们只将重要数据发送到服务器。
  • 它使应用程序具有交互性和更快速。

3、AJAX有哪些缺点?

  • 取决于JavaScript
  • 安全问题
  • 调试很困难

4、原生js ajax请求有几个步骤?分别是什么

//创建 XMLHttpRequest 对象
var ajax = new XMLHttpRequest();
//规定请求的类型、URL 以及是否异步处理请求。
ajax.open('GET',url,true);
//发送信息至服务器时内容编码类型
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
//发送请求
ajax.send(null);  
//接受服务器响应数据
ajax.onreadystatechange = function () {
    if (obj.readyState == 4 && (obj.status == 200 || obj.status == 304)) { 
    }
};

5、ajax几种请求方式?他们的优缺点?

常用的post,get,delete。不常用copy、head、link等等。

区别:

(1)post比get安全 (因为post参数在请求体中。get参数在url上面)

(2)get传输速度比post快 根据传参决定的。(post通过请求体传参,后台通过数据流接收。速度稍微慢一些。而get通过url传参可以直接获取)

(3)post传输文件大理论没有限制  get传输文件小大概7-8k ie4k左右

(4)get获取数据 post上传数据(上传的数据比较多  而且上传数据都是重要数据。所以不论在安全性还是数据量级 post是最好的选择)

6、目前市场上运行的AJAX的真实Web应用程序是什么?

  • 推特
  • Facebook
  • Gmail
  • Javatpoint
  • Youtube

7、AJAX有哪些安全问题?

  • AJAX源代码是可读的
  • 攻击者可以将脚本插入系统

8、同步和异步请求有什么区别?

 同步请求会阻止用户,直到检索到响应,而异步不会阻止用户。

9、AJAX使用了哪些技术?

  • HTML / XHTML和CSS - 这些技术用于显示内容和样式。
  • DOM - 用于动态显示和与数据交互。
  • XML - 用于与服务器之间传送数据
  • XMLHttpRequest - 用于客户端和服务器之间的异步通信。
  • JavaScript - 主要用于客户端验证。

10、XMLHttpRequest的目的是什么?

  • 它将后台数据发送到服务器。
  • 它从服务器请求数据。
  • 它从服务器接收数据。
  • 它在不重新加载页面的情况下更新数据。

11、XMLHttpRequest的属性是什么?

下面给出了XMLHttpRequest对象的重要属性。

  • onReadyStateChange - 只要readystate属性发生变化,就会调用它。
  • readyState - 表示请求的状态。
  • responseText - 它将响应作为文本返回。
  • responseXML - 它以XML格式返回响应。
  • status - 返回请求的状态编号。
  • statusText - 返回状态的详细信息。

12、XMLHttpRequest的重要方法是什么?

  • abort() - 用于取消当前请求。
  • getAllResponseHeaders() - 返回标题详细信息。
  • getResponseHeader() - 返回特定的标题详细信息。
  • open() - 用于打开请求。
  • send() - 用于发送请求。
  • setRequestHeader() - 它添加了请求标头。

13、XMLHttpRequest使用的open()方法有哪些类型?

  • open(method,URL) - 它打开指定get或post方法和URL的请求。
  • open(method,URL,async) - 它与上面相同但是指定异步或不指定。
  • open(method,URL,async,userName,password) - 与上面相同,但指定用户名和密码。

14、XMLHttpRequest使用的send()方法有哪些类型?

  • send() - 它发送get请求
  • send(string) - 发送帖子请求。

15、回调函数在AJAX中的作用是什么?

 回调函数将函数作为参数传递给另一个函数。如果我们必须在网站上执行各种AJAX任务,那么我们可以创建一个用于执行XMLHttpRequest的函数和一个用于执行每个AJAX任务的回调函数。

16、AJAX中的JSON是什么?

 JSON代表JavaScript Object Notation。在AJAX中,它用于在浏览器和服务器之间交换数据。它很容易理解,数据交换比XML快。它支持数组,对象,字符串,数字和值。

request.onreadystatechange   =  function (){    
      if(request.readyState  == 4)    
      {    
        var  jsonObj  =  JSON .parse(request.responseText); // JSON.parse()返回JSON对象    
        的document.getElementById( “日期”).innerHTML  =   jsonObj .date;    
        的document.getElementById( “时间”).innerHTML  =  jsonObj .时间;    
      }    
   } 

17、调试AJAX应用程序的工具有哪些?

 有几种用于调试AJAX应用程序的工具。

  • 适用于Mozilla Firefox的Firebug
  • 适用于IE的Fiddler(Internet Explorer)
  • JavaScript HTML调试器
  • MyEclipse AJAX工具
  • 脚本调试器

18、AJAX中的回发类型有哪些?

 在AJAX中有两种类型的回发。

  • 同步回发 - 它会阻止客户端直到操作完成。
  • 异步回发 - 它不会阻止客户端。

19、AJAX中请求的准备状态有哪些?

 在AJAX中有5个请求的就绪状态。

  • 0:意味着未被发现
  • 1:表示已打开
  • 2:表示HEADERS_RECEIVED
  • 3:表示装载
  • 4:表示完成

20、常见的AJAX框架是什么?

  • Dojo Toolkit
  • YUI
  • Google Web Toolkit(GWT)
  • Spry
  • MooTools
  • Prototype

21、你如何测试AJAX代码?

 JUnit是客户端JavaScript的开源单元测试框架。需要创建测试用例。单元测试用例是一个代码,用于确保程序逻辑按预期工作。

22、JavaScript和AJAX有什么区别?

JavaScript AJAX
JavaScript是一种基于对象的脚本语言。 AJAX是一组相互关联的技术,如JavaScript,XML,HTML,CSS等
它请求服务器并等待响应。 它向服务器发送请求,不等待响应。
重新加载页面时会占用更多带宽。 它不会重新加载页面,因此占用的带宽更少。


4种常用的Ajax请求方式
AJAX JSON 实例
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }