对Ajax的理解
- Ajax 的全称: 全称为"异步JavaScript及XML",强调了其异步性质。这意味着通过Ajax,可以在不重新加载整个页面的情况下,与服务器进行数据交换。
- 核心是 XmlHttpRequest (XHR): XHR 是浏览器提供的一种 API,允许客户端通过JavaScript与服务器进行通信,实现异步数据传输。
- 提高用户体验和性能: 异步加载数据使得页面可以在后台与服务器通信,同时继续响应用户的交互,提高了用户体验。由于只更新部分页面而不是整个页面,可以提高性能。
- 不能跨域问题: Ajax 由于同源策略的限制,默认情况下不能跨域。这是为了保护用户数据安全。
- 跨域解决方案及其本质: JSONP,它是一种绕过同源策略的方法,通过动态创建
<script> 标签实现跨域请求。JSONP 的本质是利用 <script> 标签的跨域特性。
- 将后台传递的数据转换为 JSON 对象:
eval 函数,但 eval 具有一些潜在的安全风险。更安全的方法是使用 JSON.parse() 函数。
- Ajax 的超时: 通过设置
timeout 可以定义Ajax请求的超时时间,确保在指定时间内没有响应时触发相应的处理。
- 同步和异步: 同步是指代码按照顺序执行,一段代码执行完成后再执行下一段;异步是指不等待异步操作完成就继续执行后续代码。Ajax 默认是异步的,可以通过设置
async 属性为 false 改为同步,但一般不推荐使用同步请求,因为可能导致页面假死。