如何做到页面不刷新数据就随数据库的数据更新而更新? 比如在页面上现在是显示:1000,这1000是从数据库读出来的数据,这时我从数据库里改成1010,页面上也要在不刷新页面的情况下自动变成:1010。能实现吗?听说可以用:XML+PHP+javascript来实现,但只是听说。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在只是举例说了一个数字,如何数字上百个以上那怎么办??都是iframe那要用上百个了!!!! 用xmlhttp~~~~~~~~先把数据库内容读入xml中index.htm 如下:<SCRIPT language=javascript><!--function bar(){var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象sURL = "login.php" //获取登陆状态数据的地址oXMLDoc.url = sURL; //load数据var oRoot=oXMLDoc.root; //获取返回xml数据的根节点if(oRoot.children != null) { xx.innerHTML = "" ; //根据返回的数据在客户端显示 for(i=0; i<oRoot.children.length; i++) { xx.innerHTML += oRoot.children.item(i).text + "<br>" ; //用户 }}var timeoutid = setTimeout("bar()",1500)} //每1.5秒重获一次数据,}//--></SCRIPT><body leftmargin="0" onLoad="bar()"><span id=xx></span></body>其中login.php如下:<?php echo "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n" ;?><plan><xx> <nickname><?php echo time(); ?></nickname> <content>稚鹰网际开发室</content></xx><xx> <nickname><?php echo time(); ?></nickname> <content>www.zhiin.net</content></xx></plan> 数据库自动“推”?好像还没这种技术吧?不过利用XMLHttp到可以实现不刷新更新页面。可以在google里找xmlhttp 无刷新 用JAVASCRIPT 与PHP相结合就可以做到!!!! iframe/div+script变态的大龄青年说得对要是再加上XMLHTTP就更好了 除非出新协议,单纯的http协议肯定不行。http是无状态的。就那个“推”技术就是 push,很多年前就有提出了,但是到现在还不见影。最流行的技术不一定是最好的。除非你能发明并推广新协议,否则只能用别的技术来代替 单纯的推不行,它要 实时知道那些连接到服务器的客户端,有更新然后发送客户端,这要耗费服务器资源,就算一个好的ftp,连接数要是超过10000会怎样可想而知,持续的连接会耗尽服务器资源。现在的http能承受百万级的访问量是因为客户端连接到服务器取回需要的页面然后就消失了,释放了资源,当然现在很多服务器会保持一段时间Alive,为了防止客户端立刻又回来而消耗在建立连接上的时间,apache的参数是KeepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 15比较好的解决思路应该是服务器建立某个标记,浏览器隔一定时间访问一下,如果那个标记改表,就更新那个标记所指向的内容。 现在实现的无刷新都是client pull,即客户端"拉"不断的向服务器发请求来查看是否有刷新.这种实现可以通过改变任何具有src属性的html元素的src属性来和服务器进行通信.还可以通过xmlhttp来实现.楼上的已经说了,我就不重复了. 不可能 xmlhttp 所谓的新技术 最终还是要去刷数据库啦只是会让用户感觉不到 用过一个用XMLHTTP的聊天室,上到70人的时候 性能好低确实 做那些足球比分 或者 博彩方面的更新结果 比较好 就那个“推”技术就是 push,很多年前就有提出了,但是到现在还不见影。因为该技术在浏览器和服务器间建立一个tcp/ip连接,而ie不支持这样的连接。所以该技术至少在国内是无法推广了。你可以考虑用flash或java applet来完成这一工作。楼上的所有方法都是在变相的“刷新” 对,我也同样高手们的技术方案,只能通过微软的MSXML来做,这样才有可能完成要求! TO: 回复人: zhiin(〃稚鹰〃) ( ) 信誉:110 用xmlhttp~~~~~~~~先把数据库内容读入xml中..........要你的代码,如我要从数据表user取得字段money是值,应该加在哪呢??你有QQ吗? 这个。。xml是你自己输出的阿你想加在哪里就加在哪里 例子:http://www.goldengrand.com/jacky/chat <?require("lib/info.php");?><head><title>Chat</title><script src="xmlhttp.js" type="text/javascript"></script><script language="javascript"> function GetUserList() { url="user.php"; xmlhttp.open("GET",url,true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { NameList.innerHTML=xmlhttp.responseText; } } xmlhttp.send(); setTimeout("GetUserList()",2000); return false}</script><?$sql->queryrow("select * from news where news_id='181'"); $row=$sql->data; echo $num=$row[click];?><body onload="GetUserList()" bgcolor='buttonface'><div id='NameList'></div></body>我想要$num这个值是不要刷新就更新的!!! 你把我上面发的代码中的<?php echo time(); ?>改为:<?php$host = "localhost" ;$user = "root" ;$pass = "" ;$db = "yourDB" ;$link = @ mysql_connect($host, $user, $pass) or die("Cann't select database!") ;mysql_select_db($db, $link) or die("Cann't select database!") ;$query = "select * from yourTable where id=1 " ;$result = mysql_query($query) ;$row = mysql_fetch_array($result) ;echo $row[user] ;?>并建一个yourDB数据库 然后在yourDB数据库中建一个yourTable数据表, 使:id user-------------------------------1 xiaoming然后把表中xiaoming改为zhangshan试试!!! OK,真的可以了,太高兴了,谢谢!//login.php文件<?php require("lib/info.php");echo "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n" ;?><plan><? $sql->Query("select * from news order by date desc limit 0,8"); $count=$sql->rows; for($i=0;$i<$count;$i++) { $sql->Fetch($i); $click=$sql->data[click]; echo "<table width=500>"; //会出错!! echo "<xx>"; echo "<nickname>".$click."</nickname>"; echo "<content>次</content>"; echo "</xx>"; echo "</table>";//会出错 }?></plan>可是为什么不能批量显示呢??echo "<table width=500>"; //会出错!!<plan></plan>之间不能加入html语言???? 内签Java程序或参考MRTG流量统计类 你可以使用一个隐藏的iframe,使用javascript让iframe进行刷新,再将结果返回给主界面。大家好,我们公司最近开发了一个免费电影网站,请大家多多光临。(http://www.crethelper.com) 你见过,好多像google,yahoo.等上网上助手没有,那绑在IE上面滚动的新闻就看上去是无刷新的,,里面是用xml和.dll实现的。 如何提取中文字符,并算出该字符的位置? php中文支持问题--我用链接提交中文字段。接收到的是乱码。。。。。 php程序在esclipse中无法调试 上传文件时无法取到中文文件名 正则疑问 Shell脚本 什么意思啊 BT文件下载站的原理?(点击按钮才弹出下载) prototype.js 怎么在服务器端接收postbody的内容 关于php4的session的问题!! 网上关于PHP通过Header标签触发下载的文章,介绍的太过草率、太过业余、根本不是程序员做的东西,我这里有几个问题。高分请教!!! 分页为什么不能去下一页 请教:php程序关于二级分类的实现
先把数据库内容读入xml中index.htm 如下:
<SCRIPT language=javascript>
<!--
function bar(){
var oXMLDoc = new ActiveXObject('MSXML'); //创建'MSXML'对象
sURL = "login.php" //获取登陆状态数据的地址
oXMLDoc.url = sURL; //load数据
var oRoot=oXMLDoc.root; //获取返回xml数据的根节点
if(oRoot.children != null)
{
xx.innerHTML = "" ;
//根据返回的数据在客户端显示
for(i=0; i<oRoot.children.length; i++)
{
xx.innerHTML += oRoot.children.item(i).text + "<br>" ; //用户
}
}
var timeoutid = setTimeout("bar()",1500)
} //每1.5秒重获一次数据,}
//-->
</SCRIPT><body leftmargin="0" onLoad="bar()">
<span id=xx></span>
</body>其中login.php如下:
<?php
echo "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n" ;
?>
<plan>
<xx>
<nickname><?php echo time(); ?></nickname>
<content>稚鹰网际开发室</content>
</xx>
<xx>
<nickname><?php echo time(); ?></nickname>
<content>www.zhiin.net</content>
</xx>
</plan>
可以在google里找xmlhttp 无刷新
变态的大龄青年说得对
要是再加上XMLHTTP就更好了
最流行的技术不一定是最好的。除非你能发明并推广新协议,否则只能用别的技术来代替
现在的http能承受百万级的访问量是因为客户端连接到服务器取回需要的页面然后就消失了,释放了资源,当然现在很多服务器会保持一段时间Alive,为了防止客户端立刻又回来而消耗在建立连接上的时间,apache的参数是
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15比较好的解决思路应该是服务器建立某个标记,浏览器隔一定时间访问一下,如果那个标记改表,就更新那个标记所指向的内容。
不断的向服务器发请求来查看是否有刷新.
这种实现可以通过改变任何具有src属性的html元素的src属性来和服务器进行通信.
还可以通过xmlhttp来实现.楼上的已经说了,我就不重复了.
xmlhttp 所谓的新技术 最终还是要去刷数据库啦
只是会让用户感觉不到 用过一个用XMLHTTP的聊天室,上到70人的时候 性能好低
确实 做那些足球比分 或者 博彩方面的更新结果 比较好
先把数据库内容读入xml中..........要你的代码,如我要从数据表user取得字段money是值,应该加在哪呢??你有QQ吗?
xml是你自己输出的阿
你想加在哪里就加在哪里
http://www.goldengrand.com/jacky/chat
require("lib/info.php");
?>
<head>
<title>Chat</title><script src="xmlhttp.js" type="text/javascript"></script>
<script language="javascript"> function GetUserList() { url="user.php"; xmlhttp.open("GET",url,true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
NameList.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.send();
setTimeout("GetUserList()",2000);
return false
}
</script>
<?
$sql->queryrow("select * from news where news_id='181'");
$row=$sql->data;
echo $num=$row[click];
?>
<body onload="GetUserList()" bgcolor='buttonface'>
<div id='NameList'></div>
</body>我想要$num这个值是不要刷新就更新的!!!
<?php
$host = "localhost" ;
$user = "root" ;
$pass = "" ;
$db = "yourDB" ;
$link = @ mysql_connect($host, $user, $pass) or die("Cann't select database!") ;
mysql_select_db($db, $link) or die("Cann't select database!") ;
$query = "select * from yourTable where id=1 " ;
$result = mysql_query($query) ;
$row = mysql_fetch_array($result) ;
echo $row[user] ;
?>
并建一个yourDB数据库 然后在yourDB数据库中建一个yourTable数据表, 使:
id user
-------------------------------
1 xiaoming
然后把表中xiaoming改为zhangshan试试!!!
<?php
require("lib/info.php");
echo "<?xml version=\"1.0\" encoding=\"gb2312\" ?>\n" ;
?>
<plan>
<?
$sql->Query("select * from news order by date desc limit 0,8");
$count=$sql->rows;
for($i=0;$i<$count;$i++) {
$sql->Fetch($i);
$click=$sql->data[click];
echo "<table width=500>"; //会出错!!
echo "<xx>";
echo "<nickname>".$click."</nickname>";
echo "<content>次</content>";
echo "</xx>";
echo "</table>";//会出错
}
?>
</plan>可是为什么不能批量显示呢??
echo "<table width=500>"; //会出错!!
<plan></plan>之间不能加入html语言????