前端js连接mysql数据库ajax_js-数据交互--AJAX

一:介绍

今天跟下大家简单的介绍一下,在前端开发中,前后端数据交互的一种手段,我们都知道,在前端往后端传送数据的话,利用get,post方法即可向后端发送数据,后端将数据接受,链接到数据库,进行数据库操作,再将数据库的数据返回到前端,那么这时候前端如何去接受后端传过来的数据呢?这个就是今天跟大家分享的重点,前端接受数据的方式-ajax.

那么ajax到底是什么呢?是一门编程语言吗?不,其实ajax它是一种技术的集合,通过多方面的技术总结出来的一种手段,作为前后端数据交互的重要手段。

ajax 全称为:“Asynchronous JavaScript and XML”(异步 JavaScript 和 XML),它并不是 JavaScript 的一种单一技术,而是利用了一系列交互式网页应用相关的技术所形成的结合体。使用Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。

二:技术结合

ajax 这个概念是由 JesseJamesGarrett 在 2005 年发明的。它本身不是单一技术,是一串技术的集合,主要有:

1.JavaScript,通过用户或其他与浏览器相关事件捕获交互行为

2.XMLHttpRequest 对象,通过这个对象可以在不中断其它浏览器任务的情况下向服务器发送请求;

3.服务器上的文件,以 XML、HTML 或 JSON 格式保存文本数据;

4.其它 JavaScript,解释来自服务器的数据(比如 PHP 从 MySQL 获取的数据)并将其呈现到页面上.

三:工作流程

上面已经提到了ajax所用的一连串的技术,那么下面一步步说一下,这些技术的意义以及用法(ajax的工作流程)

1:创造介质(对象)

var x = new XMLHttpRequest();

2:发送的方法

x.open("get","url",true);

三个参数:发送方法,地址,布尔值(默认为true,异步)

第一个参数:POST||GET

POST和GET的区别:1.POST主要用来发送数据,GET主要用来接受数据;2.PSOT发送数据的安全性较好,而GET较差;3.POST发送数据不限制大小,而GET大小受限2~100k。

什么时候用GET和POST:在数据获取时用GET方式,在操作数据时应使用POST方式。

第二个参数:要请求的url

第三个参数:接受一个布尔值,决定请求的方式

为true时,服务器请求是异步进行的,也就是脚本执行send() 方法后不等待服务器的执行结果,而是继续执行脚本代码;

为false时,服务器请求是同步进行的,也就是脚本执行send() 方法后等待服务器的执行结果的返回,若在等待过程中超时,则不再等待,继续执行后面的脚本代码!

3:监听ajax和http的状态

x.onreadystatechange =function(){

if(x.readyState == 4 && x.status == 200){

//ajax的状态为4并且http的状态为200即表示数据正常

}

}

4:发送信息

x.send();

四:ajax的状态码和http的状态码表

1:ajax.readyState:

0-(未初始化)还没有调用send()方法1-(载入)已调用send()方法,正在发送请求2-(载入完成)send()方法执行完成,已经接收到全部响应内容3-(交互)正在解析响应内容4 -(完成)响应内容解析完成,可以在客户端调用了

2:HTTP状态码ajax.status:监听服务器的状态

1**:请求收到,继续处理2**:操作成功收到,分析、接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请求失败100——客户必须继续发出请求101——客户要求服务器根据请求转换HTTP协议版本200——交易成功201——提示知道新文件的URL202——接受和处理、但处理未完成203——返回信息不确定或不完整204——请求收到,但返回信息为空205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件206——服务器已经完成了部分用户的GET请求300——请求的资源可在多处得到301——删除请求数据302——在其他地址发现了请求数据303——建议客户访问其他URL或访问方式304——客户端已经执行了GET,但文件未变化305——请求的资源必须从服务器指定的地址得到306——前一版本HTTP中使用的代码,现行版本中不再使用307——申明请求的资源临时性删除400——错误请求,如语法错误401——请求授权失败402——保留有效ChargeTo头响应403——请求不允许404——没有发现文件、查询或URl405——用户在Request-Line字段定义的方法不允许406——根据用户发送的Accept拖,请求资源不可访问407——类似401,用户必须首先在代理服务器上得到授权408——客户端没有在用户指定的饿时间内完成请求409——对当前资源状态,请求不能完成410——服务器上不再有此资源且无进一步的参考地址411——服务器拒绝用户定义的Content-Length属性请求412——一个或多个请求头字段在当前请求中错误413——请求的资源大于服务器允许的大小414——请求的资源URL长于服务器允许的长度415——请求资源不支持请求项目格式416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求500——服务器产生内部错误501——服务器不支持请求的函数502——服务器暂时不可用,有时是为了防止发生系统过载503——服务器过载或暂停维修504——关口过载,服务器使用另一个关口或服务来响应用户,等待时间设定值较长505——服务器不支持或拒绝支请求头中指定的HTTP版本

五:解决get方法一个bug

我们都知道,每次浏览器请求相同地址,会优先查找缓存,通过缓存打开的页面速度也快,但是如果当服务器种的数据进行更新了,页面请求任然走的是缓存的话,就会导致页面获取不到最新的数据,这个是很严重的问题,那么如何解决这个bug呢?如果说每次访问的都是都不一样,但是拿到的数据都是一样的,那么这个问题也就迎刃而解了,一个随时都在变化的且不需要去操控的东西,相信大家都能想到一个东西叫做时间戳,没错,我们可以将时间戳拼接在url的后面,这样就能保证我们每次拿到的都是不同的地址,以此来欺骗浏览器。

六:ajax的优缺点:

1:优点

无刷新加载技术,不需要刷新页面就能拿到最新的数据

初始加载页面,提升速度

节省性能,提高用户体验

2:缺点:

ajax破坏了浏览器的前进后退功能

破坏了SEO

ajax的兼容:IE5之前不兼容

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
前端使用 Ajax 连接数据库是不安全的,因为数据库连接信息通常包含用户名、密码等敏感信息,暴露在前端容易导致安全风险。一般情况下,前端通过 Ajax 发送请求到后端,后端再与数据库进行交互。 你可以按照以下步骤使用 Ajax 连接数据库: 1. 在前端使用 JavaScript 编写 Ajax 请求,并指定后端处理该请求的 URL。 2. 在后端使用服务器端编程语言(如 PHP、Node.js 等)接收 Ajax 请求,并处理请求。 3. 在后端通过合适的方式(如数据库连接库)连接数据库,并执行相应的数据操作(增删改查)。 4. 后端处理完数据库操作后,将结果返回给前端。 以下是一个简单的示例: 前端代码(使用 jQuery 的 Ajax): ```javascript $.ajax({ url: 'backend.php', // 后端处理请求的URL type: 'POST', // 请求类型 data: {param1: value1, param2: value2}, // 发送给后端的数据 success: function(response) { // 处理后端返回的数据 console.log(response); }, error: function(xhr, status, error) { // 处理错误 console.error(error); } }); ``` 后端代码(使用 PHP 连接 MySQL 数据库): ```php <?php $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database"; // 创建数据库连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检查连接是否成功 if ($conn->connect_error) { die("连接数据库失败: " . $conn->connect_error); } // 处理 Ajax 请求 // ... // 关闭数据库连接 $conn->close(); ?> ``` 需要注意的是,以上示例只是一个简单的演示,并没有包含完整的错误处理、安全性措施等。在实际项目中,需要根据具体情况进行更严谨的编码和防护措施。另外,不同的后端语言和数据库类型有不同的连接方式和操作方式,可以根据自己的需求选择合适的技术栈进行开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值