1. 什么是ajax?

  AJAX = Asynchronous (异步) JavaScript and XML,是一种用于创建快速动态网页的技术。

2. ajax接受到的数据类型是什么?

  2.1 string

  2.2 JSON字符串

  2.3 JSON对象

3. ajax的适用场景有哪些?优点和确定分别是什么?

  适用场景:表单的失焦验证,表单的自动补全功能,页面只需要局部刷新的时候。

  优点:

    1. 页面局部刷新。

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

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

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

  缺点:

    1. AJAX干掉了Back和History功能,即对浏览器机制的破坏。

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

    3. 对搜索引擎支持较弱。

    4. AJAX不能很好支持移动设备。

    5. 不易于调试。

4. 创建ajax的步骤?

<script>
// 1.创建ajax对象-xmlhttprequest对象
// XMLHttpRequest 对象 // variable=new XMLHttpRequest(); 新版本的浏览器
// variable=new ActiveXObject("Microsoft.XMLHTTP"); //老版本的IE ,IE5,IE6
var xhr;
if(window.XMLHttpRequest){ //常规,如果有,直接使用
xhr = new XMLHttpRequest();
}else{ //如果没有,老版本IE
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
console.log(xhr)
console.log("状态码:" + xhr.readyState);
console.log('响应码:' + xhr.status);
console.log('响应文本:' + xhr.responseText);
console.log('步骤一完成') // 2.通过监听ajax的状态的改变来监听
xhr.onreadystatechange = function(){
console.log('xhr的状态码发生了改变');
console.log("状态码:" + xhr.readyState);
console.log('响应码:' + xhr.status);
console.log('响应文本:' + xhr.responseText);
console.log('\n');
}
console.log('步骤二完成') // 3.创建请求的消息,连接服务器 状态码0=>1
xhr.open('GET','07.php',true); //最后一个参数是bool,表示同步||异步,true异步
console.log('步骤三完成') // 4.发送
xhr.send(null); //如果是post请求,就放post参数,如果是get请求,发送null就行了
</script>

5. 同步和异步的区别?

  同步会阻塞代码的运行。

    代表:循环,script加载src

  异步不会阻塞代码的运行。

    代表:定时器,link加载css,img加载src

6. GET和POST的区别?

  GET:传递的参数在地址栏中,发送的数量有限,一般在2000个字符左右。

  POST:传递的参数在请求体中,理论上,如果网速良好的情况下,对发送的参数是没有限制的。

7. ajax请求是GET和POST的区别?

  get一般用来进行查询操作,url地址有长度限制,请求的参数都暴露在url地址当中,如果传递中文参数,需要自己进行编码操作,安全性较低。

  post请求方式主要用来提交数据,没有数据长度的限制,提交的数据内容存在于http请求体中,数据不会暴漏在url地址中。

8. http常见的状态码有那些?分别代表是什么意思?

  200 - 请求成功

  301 - 资源(网页等)被永久转移到其它URL

  404 - 请求的资源(网页等)不存在

  500 - 内部服务器错误

9. ajax和JSON对比,两者的优缺点?

  ajax:优点:可以使得页面不重载全部内容的情况下加载局部内容,降低数据传输量,避免用户不断刷新或者跳转页面,提高用户体验。

       缺点:对搜索引擎不友好;要实现ajax下的前后退功能成本较大;可能造成请求数的增加跨域问题限制

  JSON:优点:轻量级、易于人的阅读和编写,便于机器(JavaScript)解析,支持复合数据类型(数组、对象、字符串、数字)

10. 解释jsonp的原理,以及为什么不是真正的ajax

  Jsonp并不是一种数据格式9,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是通过动态创建script标签,然后通过标签的src属性获取js文件中的js脚本,该脚本的内容是一个函数调用,参数就是服务器返回的数据,为了处理这些返回的数据,需要事先在页面定义好回调函数,本质上使用的并不是ajax技术。

ajax常见的面试题的更多相关文章

  1. 关于JavaScript 常见的面试题

    关于JavaScript常见的面试题总结 一.JavaScript基本数据类型 null:空.无.表示不存在,当为对象的属性赋值为null,表示删除该属性 undefined:未定义.当声明变量却没有 ...

  2. HTML5常见的面试题,基础知识点

                                                                                    HTML5常见的面试题 一.HTML 常 ...

  3. 部分常见ORACLE面试题以及SQL注意事项

    部分常见ORACLE面试题以及SQL注意事项 一.表的创建: 一个通过单列外键联系起父表和子表的简单例子如下: CREATE TABLE parent(id INT NOT NULL, PRIMARY ...

  4. 【面试必备】常见Java面试题大综合

    一.Java基础 1.Arrays.sort实现原理和Collections.sort实现原理答:Collections.sort方法底层会调用Arrays.sort方法,底层实现都是TimeSort ...

  5. PHPer常见的面试题总结

    1.平时喜欢哪些php书籍及博客?CSDN.虎嗅.猎云 2.js闭包是什么? 3.for与foreach哪个更快? 4.php鸟哥是谁?能不能讲一下php执行原理? 5.php加速器有哪些?apc.z ...

  6. SQLServer 常见SQL笔试题之语句操作题详解

    SqlServer 常见SQL笔试题之语句操作题详解 by:授客 QQ:1033553122 测试数据库 CREATE DATABASE handWriting ON PRIMARY ( name = ...

  7. (转)C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析

    C/C++ 程序设计员应聘常见 面试笔试 试题深入剖析 http://www.nowcoder.com/discuss/1826?type=2&order=0&pos=23&p ...

  8. HTTP和HTTPS的区别和常见的面试题

    本篇会着重介绍http和https的区别和常见的面试题 常见的http和https面试题: Http与Https的基本概念和他们的区别 HTTPS工作原理 常用的HTTP方法有哪些 GET方法与POS ...

  9. 分享一些JVM常见的面试题(转)

    出处:  分享一些JVM常见的面试题 前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 ...

随机推荐

  1. VS发布网站时,报错提示:“未能将文件xxx复制到xxx,未能找到文件xx”三种解决方案!

    发布网站时候大家可能会遇到这样的情况,就是报错提示说:“未能将文件xxx复制到xxx,未能找到文件xx”,这个问题一般来说有三种解决方案,个人倾向第三种,如图: 解决方案如下: 方案一.把系统提示缺失 ...

  2. ZOJ 3604 Tunnel Network(凯莱定理)

    题目链接: E - Tunnel Network ZOJ - 3604 题目大意: 给定编号1-n的点,和给定编号1-S 的联通图,刚开始1号联通图只有 1个顶点,就是编号为1的顶点,2号联通图也只有 ...

  3. Cocoapods安装 2018-11-01更新

    2018-11-1 更新 pod install 报错 [!] Oh no, an error occurred.   Cocoapods 需要更新 主要涉及2点内容 一.ruby 更新(V2.5.3 ...

  4. linux常用技能

    阿里云镜像图形界面克隆虚拟机 linux替换阿里云镜像 centos6.6安装图形界面 克隆虚拟机后网络问题 linux替换阿里云镜像 第一步:备份你的原镜像文件,以免出错后可以恢复. cp /etc ...

  5. 有趣的 zkw 线段树(超全详解)

    zkw segment-tree 真是太棒了(真的重口味)!写篇博客纪念入门 emmm...首先我们来介绍一下 zkw 线段树这个东西(俗称 "重口味" ,与 KMP 类似,咳咳. ...

  6. 分组PARTITION BY及游标CURSOR的用法

    基础数据表: select * from dbo.RecommendationChanelVersionRelation: 数据如下: 要求按照ChannelVersionID分组,对每组中的Orde ...

  7. java各种数据类型的数组元素的默认值

    public class DataTypeDefaultValue { public static void main(String[] args) { // string类型数组的默认值null / ...

  8. 具体分析UGUI中RectTransform

    一:RectTransform 组件 1.Transform 组件是所有的游戏物体必备的一个组件,且不可删除,不可隐藏.就算是一个空物体,也是具备 Transform 组件的. Unity3D4.6 ...

  9. JIRA API 对接

    系统要跟JIRA对接,将本系统数据发送给jira. 开始一头雾水怎么让数据传过去已什么形式存在,是存数据库呢还是怎么显示呢.研究半天发现其实只要将原数据作为json数据提供给jira接口,jira接口 ...

  10. linux命令详解之df命令

    df命令概述df命令作用是列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多少空间. df命令显示系统中包含每个文件名参数的磁盘使用情况,如果没有文件名参数,则显示所有当前 ...