欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ajax异步请求技术实例讲解

程序员文章站 2022-06-22 13:10:10
ajax的全称是asynchronous javascript and xml(异步的 javascript 和 xml)。 ajax不是新的编程语言,而是一种使用现有标...

ajax的全称是asynchronous javascript and xml(异步的 javascript 和 xml)。

ajax不是新的编程语言,而是一种使用现有标准的新方法。ajax是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。

ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。

ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换。ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。而传统的网页(不使用ajax)如果需要更新内容,必须重载整个网页面。

Ajax异步请求技术实例讲解

在web应用开发过程中,业界对前后端的分界线似乎一直都没有确定的概念,不过大多数人以浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称为前端,而将运行于服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端。

Ajax异步请求技术实例讲解

虽然前后端分离在数年前就已经开始受到关注,但很多人对它却是只闻其声,未见其形,所以对它产生了一些误解,误以为前后段分离只是一种web应用的开发模式,只要在web应用的开发期进行了前后端开发工作的分工就是前后端分离。

其实并非如此,准确的说,前后端分离并不只是开发模式,而是web应用的一种架构模式。在开发期,前后端工程师可以通过约定好交互接口,实现并行开发;在运行期,前后端分离模式需要对web应用进行分离部署,前后端之间使用http请求进行交互。

Ajax异步请求技术实例讲解

一、json解析

json(javascript object notation) 是一种轻量级的数据交换格式。json采用完全独立于语言的文本格式,这些特性使json成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。简单地说,json 可以将 javascript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 web 客户机传递给服务器端程序。

二、ajax接口调用

前后端分离意味着,前后端之间使用 json 来交流,两个开发团队之间使用 api 作为契约进行交互, 通过json字符串,然后在异步应用程序中将字符串从 web 客户机传递给服务器端程序。这部分学习的就是如何从前台向后台发起一个ajax请求,最后得到服务器返回的数据响应之后,进行前端页面的更新。

三、php后台

Ajax异步请求技术实例讲解

php是一种流行的通用脚本语言,特别适合于web开发。php语言具有以下特点:

1、跨平台,性能优越,和很多免费的平台结合非常省钱,比如lamp(linux /apache/mysql/php)或者famp(freebsd/apache/mysql/php)结合,或者数据应用够大可以考虑换 postgresql或者oracle,支持n种数据库。(n >= 10)

2、语法简单,如果有学习c和perl的很容易上手,并且跟asp有部分类似。有成熟的开发工具,比如nuphped,或者zend studio等等,再linux平台下可以使用eclipse等等。

3、目前主流技术都支持,比如webservice、ajax、xml等等,足够应用。

4、有很多成熟的框架,比如支持mvc的框架:phpmvc,支持类似asp.net的事件驱动的框架:prado,支持类似ruby on rails的快速开发的框架:cake等等,足够满足你的应用需求。

5、php 5已经有成熟的面向对象体系,能够适应基本的面向对象要求。适合开发大型项目。

这部分主要学习的如何搭建一个php服务器,掌握php的基本语法,通过php生成一个动态网页,掌握如何使用php完成一个标准化的接口,最终返回json数据给前台。

四、数据库

Ajax异步请求技术实例讲解

数据库(database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的api用于创建,访问,管理,搜索和复制 所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。

mysql是一个关系型数据库管理系统,由瑞典mysql ab公司开发,目前属于oracle公司。mysql是一种关联数据库管理系统,关联数据库将数据保存在 不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

• mysql是开源的,所以你不需要支付额外的费用。

• mysql支持大型的数据库。可以处理拥有上千万条记录的大型数据库。

• mysql使用标准的sql数据语言形式。

• mysql可以允许于多个系统上,并且支持多种语言。这些编程语言包括c、c++、python、java、perl、php、eiffel、ruby和tcl等。

• mysql对php有很好的支持,php是目前最流行的web开发语言。

• mysql支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4gb,64位系统支持最大的表文件为8tb。

这部分主要学习的是数据中的增删改查操作,最后通过php访问数据中的数据,然后通过响应的处理,发挥给前台使用。

五、ajax跨域

由于在工作中需要使用ajax请求其他域名下的请求,但是会出现拒绝访问的情况,这是因为基于安全的考虑,ajax只能访问本地的资源,而不能跨域访问。

解决方式一:

“xhr2” 全称 “xmlhttprequest level2” 是html5提供的方法,对跨域访问提供了很好的支持,并且还有一些新的功能。

* ie10以下的版本都不支持

* 只需要在服务器端头部加上下面两句代码:

header( "access-control-allow-origin:*" );
header( "access-control-allow-methods:post,get" );

解决方式二:

jsonp(json with padding)是一个非官方的协议,它允许在服务器端集成script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是jsonp简单的实现形式)。

由于同源策略的限制,xmlhttprequest只允许请求当前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出json数据并执行回调函数,从而解决了跨域的数据请求。

总结

以上所述是小编给大家介绍的ajax异步请求技术实例讲解,希望对大家有所帮助