开讲前,先说下网上,大部分的关于这方面的博文或者其他什么的,就我自己的感觉,第一说得不详细,第二语言不能很好的被初学者了解。

我这篇博文的标题之所以用了三句,是为了方便其他人好查找;

这里介绍的方法有什么用呢? 使用它,就可以无闪刷新页面,并且从数据库获取实时改变的数据反馈回界面,显示出来!是不是很爽,的确。

废话不多,开讲,请注意我的代码的注释,里面详说!


连接的前台连接的php文件:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
var xmlHttp;
//创建xmlHttpRequest对象 //下面将会针对不同的浏览器创建对象,也是两个if语句的作用
/*
在firefox,opera,safiar,IE7.0,IE8.0(我所知道的window对象有这个属性
的浏览器)这些浏览器中,window是有XMLHttpRequest这个属性的,而IE6.0,5.5都是没有的,
IE6.0或5.5是没有这个属性的,使用window.ActiveXObject替代。
*/
function createXmlHttpObject()
{
if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest(); //创建对象
}else if(window.ActiveXObject)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //创建对象
}
return xmlHttp;//创建成功,返回
} function send()//这个函数用来和后台的服务器文件连接,可以是asp,php,我这里用php说明
{
xmlHttp = createXmlHttpObject();//调用上面的创建对象函数 var url = "33.php"; //这里的url变量,用来存储你,你自己想要连接的文件路径,我这里比较简单是因为33.php和我这个php在同一目录 if(xmlHttp)//判读,如果对象不为空,进入下面
{
xmlHttp.onreadystatechange = callback;
/*注册回调函数名,这里可以看作是函数的调用,onreadystatechange是 XMLHttpRequest的一个属性,用来检测当前状态
当状态改变,就会触发函数,所有,如果只需要函数名,不要加括号*/ //下面的open 函数,顾名思义,打开,用来连接你上面的url文件
//设置连接信息:
//第一个参数:表示http的请求方式,主要使用get和post
//第二个参数:表示请求的URL地址,get方式的请求参数也在URL中
//第三个参数:表示采用同步还是异步方式进行交互,true表示异步交互
xmlHttp.open("GET", url, true); //下面的send函数,这个是对象自身有的方法,不是这里定义的send,它用来发送命令,发送什么呢,open的命令
//发送数据,开始和服务器端进行交互
//同步方式下,send语句会在服务器端返回数据后才执行
//异步方式下,send语句会立即执行
xmlHttp.send(null);
}else{
alert("出错,请重新尝试!");
return;
}
} //回调函数,就是刚才定义的函数,用来获取从服务器文件,asp或者php或者其他返回的信息
function callback()
{
var mInt = ;//移动像素,这部分是用来验证的
var _obj = document.getElementById("pic");
var _text = document.getElementById("textview");
var _x = parseInt(_obj.style.left);
var _y = parseInt(_obj.style.top);
/*if (_x < mInt)
_y -= mInt;
else if (_y > mInt)
_x -= mInt;*/
_obj.style.left = _x + "px";
_obj.style.top = _y + "px";
//判断对象的状态是交互完成
if(xmlHttp.readyState == )
//这里是状态判断有0~4,百度很多详解,4代表,连接上了并且获得了数据
{
//判断http的交互是否成功
if(xmlHttp.status==)
{
//获取服务器端返回的数据
var xmlDoc = xmlHttp.responseXML;
//这里把返回的数据以XML的格式存到变量中。
//还有一种返回式以字符串的形式返回,responseText,这个可以用下标法逐个输出,但是注意,逐个输出的是字符,
//也就是说,你想要的一个字符串会被拆成几份 //这里的 getElementsByTagName("time")[0].childNodes[0].nodeValue; 是采用遍历数的方法逐个输出数据
//getElementsByTagName 是通有的(" ")这里写的是你链接的文件里面的标签名,等下介绍再详说,[0]也是要写的
//.childNodes[0].nodeValue; 这块也是通有的,意思是获取值
_x = xmlDoc.getElementsByTagName("time")[].childNodes[].nodeValue;
_y = xmlDoc.getElementsByTagName("in")[].childNodes[].nodeValue;
_text.innerHTML = "_x=" + _x + ",_y" + _y; }else{
alert(xmlHttp.statusText);
}
}
} function refresh()
{ setInterval("send()",); //定时刷新,循环调用,上面的send函数。、,时间间隔为0.1秒。 }
</script>
</head>
<body onLoad="refresh()">//这里调用
<div id='pic' style='position:absolute;left:380px;top:200px;'><img width='' height='' src='C:\Users\Administrator.PC--20130918KZN\Desktop\9.png' /><font id="textview"></font></div> </body>
</html>

后台被连的php:

 <?php
header('Content-Type: text/xml');
header("Cache-Control: no-cache, must-revalidate");
//上面两句是PHP 文档的 content-type 被设置为 "text/xml" ,PHP 文档被设置为 "no-cache",以防止缓存
$time = date('Y-m-d h:i:s',time()); $information="XXXX"; echo '<?xml version="1.0" encoding="ISO-8859-1"?><person>';//这句必须有,没的话,输不出东西
echo "<time>" .$time. "</time>";
//这里的<time> </time>标签就是刚才(" "),里面要填的,通过这方式,分别输出、获取不同的值,下同
echo "<in>" .$information. "</in>";
echo "</person>";//和上面的person完成一个一对 ?>

由于我自己是通过输出系统时间来测试的,测试成功后是,看到时间的。

如何用 ajax 连接mysql数据库,并且获取从中返回的数据。ajax获取从mysql返回的数据。responseXML分别输出不同数据的方法。的更多相关文章

  1. ruby使用DBI连接MySQL数据库发生异常:in `error': Can't connect to MySQL server on 'localhost' (10061) (DBI::DatabaseError)

    Ruby使用DBI连接MySQL数据库一般为: require "dbi" dbh = DBI.connect("dbi:Mysql:test:localhost&quo ...

  2. java中用activiti插件连接mysql数据库,自动建表过程中,在配置mysql架包路径“org.activiti.engine.ActivitiException: couldn't check if tables “

    java中用activiti插件连接mysql数据库,出现错误: org.activiti.engine.ActivitiException: couldn't check if tables are ...

  3. 最近使用Navicat for MySQl访问远程mysql数据库,出现报错,显示“2003- Can't connect MySQL Server on 'localhost'(10038)“。

    优先考虑mysql数据库是否开启 1.先看报错窗口.   通过百度,最终找到的原因是:远程3306端口未对外开放. 于是下面进行远程3306端口开放操作.   首先远程连接服务器,点击“开始”-“管理 ...

  4. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  5. Android如何连接MySQL数据库

    Android开发中,大多数连接到远程MySQL数据库的方法是加入特定的Service到代码中.由于MySQL通常是和PHP一起使用的,最简单以及最常见的方法是写PHP脚本管理数据连接,以及从Andr ...

  6. python如何连接mysql数据库

    先花点时间来说说一个程序怎么和数据库进行交互1.和数据库建立连接2.执行sql语句,接收返回值3.关闭数据库连接使用MySQLdb也要遵循上面的几步.让我们一步步的进行. 1.MySQL数据库要用My ...

  7. Windows下C/C++连接mysql数据库的方法

    步骤 安装MySQL数据库 项目属性页->C/C++->常规->附加包含目录:xxx\mysql Server 5.6\include 项目属性页->链接器->常规-&g ...

  8. SSM项目实现连接两个mysql数据库

    最近做项目需要用到另一个数据库的内容,多方查找终于实现了功能. 我们都知道,在SSM框架中,我们在applicationContext.xml配置文件中添加数据源就可以实现数据库增删改查,但是只能连接 ...

  9. c# 连接Mysql数据库

    mysql.data.dll下载_c#连接mysql必要插件 全部版本下载:http://hovertree.com/h/bjaf/0sft36s9.htm mysql.data.dll是C#操作MY ...

随机推荐

  1. errno

    关于errno有以下需要注意: 1  A common mistake is to do if (somecall() == -1) {                printf("som ...

  2. STL容器分类

  3. 安装dubbo管理中心

    从http://pan.baidu.com/s/1dDlI7aL下载dubbo-admin-2.5.4.war包 将下载的包放在tomcat的webapps目录,启动tomcat自动解压该war包,然 ...

  4. Expert 诊断优化系列------------------你的CPU高么?

    现在很多用户被数据库的慢的问题所困扰,又苦于花钱请一个专业的DBA成本太高.软件维护人员对数据库的了解又不是那么深入,所以导致问题迟迟不能解决,或只能暂时解决不能得到根治.开发人员解决数据问题基本又是 ...

  5. EQueue - 一个纯C#写的分布式消息队列介绍2

    一年前,当我第一次开发完EQueue后,写过一篇文章介绍了其整体架构,做这个框架的背景,以及架构中的所有基本概念.通过那篇文章,大家可以对EQueue有一个基本的了解.经过了1年多的完善,EQueue ...

  6. [Voice communications] 声音的滤波

    本系列文章主要是介绍 Web Audio API 的相关知识,以及 web语音通信 中会遇到的一些问题,阐述可能存在错误,还请多多斧正! 通过设备获取音频流会不可避免的渗入一些杂音,这些杂音可能来自你 ...

  7. [Voice communications] 看得到的音频流

    上文介绍了 Web Audio API 的相关知识,以及如何在你的 web 程序中引入 音频流,内容都是介绍性的,所以没有写太多 DEMO.本文重点讲解如何利用 Web Audio API 中的中间节 ...

  8. AutoMapper使用手册(一)

    阅读目录 1. 介绍 2. 基本使用 3. 自动分割映射(Flattening) 4. 自定义字段映射(Projection) 5. 验证配置(Configuration validation) 介绍 ...

  9. sublime text2 安装less2css插件

    之前一直用PhpStorm,功能十分强大,各种插件也有,不过比较占内存,有时候,左边的项目列表都刷不出来,今天又出现了这个问题,于是果断换sublime了. 由于项目中要用less编译,所以得装个le ...

  10. 我所记录的git命令(非常实用)

    一.前言 记录一下工作中常用到的git命令,只是简单的笔记,欢迎大家交流... [ 顺便问下园友们,怎么感觉博客园发布的博客搜索有时都搜不到,后台编辑能填的都填写了,还是觉得搜索排名不高? 相同的标题 ...