ajax的概念:ajax是前后端数据交互的重要手段,Ajax 全称为:“Asynchronous JavaScript and XML”,
ajax的介绍:它本身不是单一技术,是一串技术的集合;
1.JavaScript,通过用户或其他与浏览器相关事件捕获交互行为
2.XMLHttpRequest 对象,通过这个对象可以在不中断其它浏览器任务的情况下向服务器发送请求;
3.服务器上的文件,以 XML、HTML 或 JSON 格式保存文本数据;
4.其它 JavaScript,解释来自服务器的数据(比如 PHP 从 MySQL 获取的数据)并将其呈现到页面上。
ajax的优势: 1.不需要插件支持(一般浏览器且默认开启 JavaScript 即可)
2.用户体验极佳(不刷新页面即可获取可更新的数据);
3.提升 Web 程序的性能(在传递数据方面做到按需发送,不必整体提交);
4.减轻服务器和带宽的负担(将服务器的一些操作转移到客户端);
ajax的不足:1.不同版本的浏览器对 XMLHttpRequest 对象支持度不足(比如 IE5 之前);
2.前进、后退的功能被破坏(因为 Ajax 永远在当前页,不会记录前后页面);
3.搜索引擎的支持度不够(因为搜索引擎爬虫还不能理解 JS 引起变化数据的内容);
AJAX的兼容问题:ajax = new XMLHttpRequest();
ajax = new ActiveXObject("Microsoft.XMLHTTP"); //IE5
如何解决ajax的缓存问题:1、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("If-Modified-Since","0")。
2、在ajax发送请求前加上 anyAjaxObj.setRequestHeader("Cache-Control","no-cache")。
3、在URL后面加上一个随机数: "fresh=" + Math.random();。
4、在URL后面加上时间戳:"nowtime=" + new Date().getTime();
ajax 的跨域问题:不允许跨域,
同源策略:同源策略是基于浏览器的安全考虑,浏览器各个厂商之间出现了一个约定,这个约定叫做同源策略。这个约定的主要内容就是,域与域之间数据不共通。
所谓同源是指:协议、域名、端口相同。
ajax 的跨域问题解决办法:前端方案jsonp 后端方案cors 服务器代理