(面试题从网上收集)javascript
一、什么是AJAX,它的特色是什么,为何要使用Ajax(请谈一下你对Ajax的认识)css
AJAX的全称是Asynchronous JavaScript And XML.java
Ajax能够实现动态不刷新(局部刷新) 就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动做,并避免了在网络上发送那些没有改变过的信息。web
AJAX是2005年由Google发起并流行起来的编程方法, AJAX不是一个新的编程语言,可是它是一个使用已有标准的新的编程技术。
使用AJAX能够建立更好,更快,更用户界面友好的Web应用。
AJAX技术基于Javascript和HTTP Request.面试
二、什么样的状况会形成跨域,跨域解决方案有哪些?ajax
同源策略限制 不一样源会形成跨域。子域名不一样,主域名不一样,端口号不一样,ip地址和网址不一样都会形成跨域。编程
解决方案有三种:json
一、代理服务器小程序
二、设置请求头:Access-Control-Allow-Origin: * //容许全部域名访问跨域
Access-Control-Allow-Origin: http://a.com //只容许全部域名访问
三、jsonp(只能解决get跨域)
原理:动态建立一个script标签。利用script标签的src属性不受同源策略限制。由于全部的src属性和href属性都不受同源策略限制。能够请求第三方服务器数据内容。
步骤:
三、http常见状态码有哪些?
状态码:
0: 请求未初始化
1: 服务器链接已创建
2: 请求已接收
3: 请求处理
4: 请求已完成,且响应已就绪
http状态响应码:
1xx 信息类
100 (继续)请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其他部分
2xx 成功
200 (成功) 服务器已成功处理了请求。一般,这表示服务器提供了请求的网页。
3xx 重定向
304 (未修改)自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
4xx 客户端错误
404 (未找到)服务器找不到请求的网页。
5xx 服务端错误
503 (服务不可用)服务器目前没法使用(因为超载或停机维护)。一般,这只是暂时状态。
四、简述原生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)) { } };
五、介绍ajax中get和post的请求方式及他们的优缺点?
代码上的区别
1:get经过url传递参数
2:post设置请求头 规定请求数据类型
使用上的区别
1:post比get安全 (由于post参数在请求体中。get参数在url上面)
2:get传输速度比post快 根据传参决定的。 (post经过请求体传参,后台经过数据流接收。速度稍微慢一些。而get经过url传参能够直接获取)
3:post传输文件大理论没有限制 get传输文件小大概7-8k ie4k左右
4:get获取数据 post上传数据 (上传的数据比较多 并且上传数据都是重要数据。因此不论在安全性仍是数据量级 post是最好的选择)
六、Ajax和javascript的区别。
javascript是一种在浏览器端执行的脚本语言,Ajax是一种建立交互式网页应用的开发技术 ,它是利用了一系列相关的技术其中就包括javascript。
Javascript是由网景公司开发的一种脚本语言,它和sun公司的java语言是没有任何关系的,它们类似的名称只是一种行销策略。
在通常的web开发中,javascript是在浏览器端执行的,咱们能够用javascript控制浏览器的行为和内容。
在 Ajax应用中信息是如何在浏览器和服务器之间传递的,经过XML数据或者字符串
七、Ajax都有哪些优势和缺点?
优势:
一、最大的一点是页面无刷新,用户的体验很是好。
二、使用异步方式与服务器通讯,具备更加迅速的响应能力。
三、能够把之前一些服务器负担的工做转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器和带宽的负担,节约空间和宽带租用成本。而且减轻服务器的负担,ajax的原则是“按需取数据”,能够最大程度的减小冗余请求,和响应对服务器形成的负担。
四、基于标准化的并被普遍支持的技术,不须要下载插件或者小程序。
缺点:
一、ajax不支持浏览器back按钮。
二、安全问题 AJAX暴露了与服务器交互的细节。
三、对搜索引擎的支持比较弱。
四、破坏了程序的异常机制。
五、不容易调试。
8、json字符串转换集json对象、json对象转换json字符串
//字符串转对象 JSON.parse(json) eval('(' + jsonstr + ')') // 对象转字符串 JSON.stringify(json)
九、Ajax主要包含了哪些技术?
Ajax(Asynchronous JavaScript + XML)的定义
基于web标准(standards-based presentation)XHTML+CSS的表示;
使用 DOM(Document Object Model)进行动态显示及交互;
使用 XML 和 XSLT 进行数据交换及相关操做;
使用XMLHttpRequest 进行异步数据查询、检索;
使用 JavaScript 将全部的东西绑定在一块儿。英文参见Ajax的提出者Jesse James Garrett的原文,原文题目(Ajax: A New Approach to Web Applications)。
相似于DHTML或LAMP,AJAX不是指一种单一的技术,而是有机地利用了一系列相关的技术。事实上,一些基于AJAX的“派生/合成”式(derivative/composite)的技术正在出现,如“AFLAX”。
AJAX的应用使用支持以上技术的web浏览器做为运行平台。这些浏览器目前包括:Mozilla、Firefox、Internet Explorer、Opera、Konqueror及Safari。可是Opera不支持XSL格式对象,也不支持XSLT。
十、AJAX技术体系的组成部分有哪些。
HTML,css,dom,xml,xmlHttpRequest,javascript
十一、请解释一下 JavaScript 的同源策略。
同源策略是客户端脚本(尤为是Javascript)的重要的安全度量标准。它最先出自Netscape Navigator2.0,其目的是防止某个文档或脚本从多个不一样源装载。所谓同源指的是:协议,域名,端口相同,同源策略是一种安全协议,
指一段脚本只能读取来自同一来源的窗口和文档的属性。
十二、AJAX请求总共有多少种CALLBACK
Ajax请求总共有八种Callback
onSuccess
onFailure
onUninitialized
onLoading
onLoaded
onInteractive
onComplete
onException
1三、介绍一下XMLHttpRequest对象的经常使用方法和属性。
open(“method”,”URL”) 创建对服务器的调用,第一个参数是HTTP请求 方式能够为GET,POST或任何服务器所支持的您想调用的方式。
第二个参数是请求页面的URL。
send()方法,发送具体请求
abort()方法,中止当前请求
readyState属性 请求的状态 有5个可取值0=未初始化 ,1=正在加载
2=以加载,3=交互中,4=完成
responseText 属性 服务器的响应,表示为一个串
reponseXML 属性 服务器的响应,表示为XML
status 服务器的HTTP状态码,200对应ok 400对应not found
1四、解释jsonp的原理,以及为何不是真正的ajax
Jsonp并非一种数据格式9,而json是一种数据格式,jsonp是用来解决跨域获取数据的一种解决方案,具体是经过动态建立script标签,而后经过标签的src属性获取js文件中的js脚本,该脚本的内容是一个函数调用,
参数就是服务器返回的数据,为了处理这些返回的数据,须要事先在页面定义好回调函数,本质上使用的并非ajax技术
1五、一个页面从输入 URL 到页面加载显示完成,这个过程当中都发生了什么?
分为4个步骤:
1. 当发送一个 URL 请求时,无论这个 URL 是 Web 页面的 URL 仍是 Web 页面上每一个资源的 URL,浏览器都会开启一个线程来处理这个请求,同时在远程 DNS 服务器上启动一个 DNS 查询。这能使浏览器得到请求对应的 IP 地址。
2. 浏览器与远程 Web 服务器经过 TCP 三次握手协商来创建一个 TCP/IP 链接。该握手包括一个同步报文,一个同步-应答报文和一个应答报文,这三个报文在 浏览器和服务器之间传递。该握手首先由客户端尝试创建起通讯,然后服
务器应答并接受客户端的请求,最后由客户端发出该请求已经被接受的报文。
3. 一旦 TCP/IP 链接创建,浏览器会经过该链接向远程服务器发送 HTTP 的 GET 请求。远程服务器找到资源并使用 HTTP 响应返回该资源,值为 200 的 HTTP 响应状态表示一个正确的响应。
4. 此时,Web 服务器提供资源服务,客户端开始下载资源。
1六、介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么做用
同步:浏览器向服务器请求数据,服务器比较忙,浏览器一直等着(页面白屏),直到服务器返回数据,浏览器才能显示页面。
异步:浏览器向服务器请求数据,服务器比较忙,浏览器能够自如的干原来的事情(显示页面),服务器返回数据的时候通知浏览器一声,浏览器把返回的数据再渲染到页面,局部更新。