首页 > 试题广场 >

Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如

[问答题]
Ajax 是什么?Ajax 的交互模型?同步和异步的区别?如何解决跨域问题?

l  AJAX 的全称是异步的 Javascript XML ,是一种创建快速动态的技术,通过在后台与服务器进行少量数据交互,实现网页的异步更新,在不重新加载整个界面的情况下,做到网页的部分刷新;

l  AJAX 的交互模型( AJAX 的过程)

Ø  用户发出异步请求;

Ø  创建 XMLHttpRequest 对象;

Ø  告诉 XMLHttpRequest 对象哪个函数会处理 XMLHttpRequest 对象状态的改变,为此要把对象的 onReadyStateChange 属性设置为响应该事件的 JavaScript 函数的引用

Ø  创建请求,用 open 方法指定是 get 还是 post ,是否异步, url 地址;

Ø  发送请求, send 方法

Ø  接收结果并分析

Ø  实现刷新

l  同步:脚本会停留并等待服务器发送回复然后再继续

    异步:脚本允许页面继续其进程并处理可能的回复

l  跨域问题的解决

   1. 使用 document.domain+iframe 解决跨子域问题

   2. 使用 window.name

   3. 使用 flash

   4. 使用 iframe+location.hash

   5. 使用 html5 postMessage

   6. 使用 jsonp (创建动态 script

发表于 2015-09-12 11:39:18 回复(0)

Ajax有关内容:

1.什么是ajax?

ajax主要实现客户端服务端的异步通信,实现页面的局部刷新。

2.ajax的优点:

实现局部刷新,提升了用户体验;

优化了浏览器与服务器之间的传输,减少了不必要的数据往返,降低了宽带的使用;

ajax在客户端运行,减轻了服务端的的负载。

3.ajax的实现过程:

创建xmlHttpRequest()对象

创建http请求

设置响应http请求状态的函数

发送http请求

获取异步调用返回的数据

使用javascript和dom实现页面局部刷新

4.手写ajax

var xhr=new XMLHttpRequest()

xhr.open(“get”,URL,true)

xhr.onreadystatechange=function(){

if(xhr.onreadyState==4){

if(xhr.status=200){

console.log(xhr.responseText)

}

}

}

xhr.send()

5.ajax的不足:

无法操作back按钮

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

不容易调试

破坏了程序的异常机制

对搜索引擎的支持比较弱

6.ajax同步与异步的区别

同步:提交请求,等待服务器处理,处理完毕。此阶段不允许浏览器干其他任何事情

异步:请求通过事件触发,服务器处理,此时的浏览器可以去干其他事),处理完成返回数据。

ajax.open方法中,第三个参数可以设置是同步还是异步

7.ajax的最大特点

可以实现异步通信效果,实现页面的动态局部刷新,按需获取数据,节约带宽资源

readyState的状态码:0未初始化;1启动;2发送;3接收;4完成。

8.跨域解决的办法:

jsonp:通过script标签发送请求,因为此标签不受同源策略的限制,支持跨域访问,操作为在script标签内给服务器发送一个callback全局函数;

porxy***:通过服务器发送请求,然后将请求结果发送给前端。实现方法:nginx***;

跨域资源共享,设置cors:设置Access-Control-Allow-Origin;

document.domain/window.name/window.postMessage等。


发表于 2019-10-15 15:39:40 回复(0)
Ajax 是什么:
1. 通过异步模式,提升了用户体验
2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3. Ajax 在客户端运行,承担了一部分本来由服务器承担的工作,减少了大用户量下的服务器负载。

Ajax 的最大的特点:
1. Ajax可以实现动态不刷新(局部刷新)
2. readyState 属性 状态 有5个可取值: 0 = 未初始化,1 = 启动, 2 = 发送,3 = 接收,4 = 完成

Ajax 同步和异步的区别:
1. 同步:提交请求 -> 等待服务器处理 -> 处理完毕返回,这个期间客户端浏览器不能干任何事
2. 异步:请求通过事件触发 -> 服务器处理(这是浏览器仍然可以作其他事情)-> 处理完毕
ajax.open方法中,第3个参数是设同步或者异步。

Ajax 的缺点:
1. Ajax 不支持浏览器 back 按钮
2. 安全问题 Ajax 暴露了与服务器交互的细节
3. 对搜索引擎的支持比较弱
4. 破坏了程序的异常机制
5. 不容易调试

解决跨域问题:
1. jsonp
2. iframe
3. window.name、window.postMessage
4. 服务器上设置***页面
发表于 2015-07-27 16:08:49 回复(0)
Ajax是多种技术组合起来的一种浏览器和服务器交互技术 基本思想是允许一个互联网浏览器向一个远程页面 服务做异步的http调用 并且用收到的数据来更新一个当前web页面而不必刷新整个页面 该技术能够改进客户端的体验 包含的技术: XHTML:对应W3C的XHTML规范 目前是XHTML1.0 CSS:对应W3C的CSS规范 目前是CSS2.0 DOM:这里的DOM主要是指HTML DOM XML DOM包括在下面的XML中 JavaScript:对应于ECMA的ECMAScript规范 XML:对应W3C的XML DOM XSLT XPath等等规范 XMLHttpRequest:对应WhatWG的Web Applications1.0规范 同步:脚本会停留并等待服务器发送回复然后再继续 异步:脚本允许页面继续其进程并处理可能的回复 跨域问题简单的理解就是因为JS同源策略的限制 a.com域名下的JS无法操作b.com或c.a.com下的对象 (1)如果是端口或者协议造成的跨域问题前端是无能为力的 (2) 在跨域问题上 域仅仅通过URL的首部来识别而不会尝试判断相同的IP地址对应的域或者两个域是否对应一个IP前端对于跨域的解决办法:(1)document.domain+iframe (2) 动态创建script标签
发表于 2019-05-03 22:15:32 回复(0)