一.什么是ajax?ajax的原理#
1.ajax是一种浏览器端不用刷新整个页面就可以与服务器通信的技术
2.他不是新技术,而是由多种技术组合而成的技术
3.包括JavaScript(绑定和处理所有数据),HTML和css3(呈现),DOM(实现动态显示和交互),xml和json(进行数据交换与处理),XMLHttpRequest(用于进行异步请求数据读取)
原理:相当于在用户和服务器之间加了一个中间层(ajax引擎),使用户操作与服务器相应异步化。对于用户请求ajax引擎会做一些数据验证和数据处理。不是所有的请求都提交给服务器,当需要从服务器读取新数据时由ajax引擎代为向服务器提交请求。ajax最大优点就是不刷新整个页面的前提上与服务器通信维护数据
二.ajax的优缺点#
优点:
1.通过异步模式,网页无刷新,提升了用户体验。
2.优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用
3.ajax引擎在客户端运行,承担了一部分本来有服务器承担的工作,从而减少了大用户量下的服务负载
4.基于标准化的并被广泛支持的技术,不需要下载插件或小程序
缺点:
1.ajax不支持浏览器back按钮
2.安全问题,ajax暴露了与服务器交互的细节
3.对搜索引擎支持比较弱
4.破坏了程序的异常机制
5.不容易调试
三.jsonp原理
动态创建一个script标签,利用script标签src属性访问没有限制,实现跨域。web客户端通过与调用脚本一样的方式来调用服务器上动态生成的js格式文件(后缀json),服务器之所以要动态生成json文件,目的是把客户端要的数据装进去,允许用户端传递一个callback参数给服务端,然后服务端韩慧数据时会将这个callback参数作为函数名来包裹住json数据,这样客户端就可以随意定制自己的函数来自动处理返回数据
四.ajax与jsonp的异同
相同点:都是请求一个IRL
不同点:ajax的核心是通过XMLHttpRequest获取内容
json的核心是动态添加一个<script>来调用服务器提供的js脚本