请问怎么可以在不刷新页面(前台)的情况下,刷新后台数据库里的数据呢!使前台页面保持和数据库同步更新呢??(在线等待!!!100分相

qunluo 2003-10-16 06:49:03
最近客户需要在前台html页随时保证最新信息,但是又要求不要刷新页面,要随时得到最新添加的数据库信息!
我查了些资料都是用xmlhttp实现,可是俺又不熟!
假设我的数据库名称mydatd有个数据表名称tongji
字段:
f_name f_date f_count f_count1 f_count2 f_count3 final_data jack 09月23日 23 34 56 78 134
; ; ; ; ; ; ;
;
;
mike 09月25 。。 。。 。。 。。。 。。。
怎么使这些数据在前台始终保持最新信息呢!(要求刷新在每30秒刷新)使前台页面<td>rs("f_name")<td>
<td>rs("f_data")<td>
........
<td>rs("final_data:)</data>
保持和数据库同步更新最新添加的信息呢!
大家一定帮帮我!
****************************
要求:不使用框架来实现(俺没办法,客户认为这样在刷新时,会有空白,很难看)命苦呐!!!
拜托各位大侠!!!!!!!
...全文
453 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghlfllz 2003-12-10
  • 打赏
  • 举报
回复
可以实现的

方法如下:
请问怎么可以在不刷新页面(前台)的情况下,刷新后台数据库里的数据呢!使前台页面保持和数据库同步更新呢?

1、在页面上用一个<iframe>来与服务器通讯;
2、用如下方法通过iframe向服器传递数据,iframename.src="location.asp?para1=abc&…"
3、在页面上需要改变数据的地方放一个<div>层;
4、在页面上写一个javascript函数,名叫getserverdata(data1,data2,tata3),其中的参数可以定义任意多个;
在函数中添加一些代码,用于将参数中的内容动态的添加到各个层中,使用DOM,例如:
div1.innerHTML=data1;
5、在iframe所调用的页面上更新数据库,并写为如下模式的程序,如下:
<%
……
'写数据库,或定义返回数据
……
%>
<body onload="parent.getserverdata('<%=data1%>','<%=data2%>',…)">
</body>
这样已实现了客户端不刷新页面,而同时刷新服务器与客户端的数据了
这个方法,我以前在做一个项目的时候已经用过了
lsaturn 2003-12-10
  • 打赏
  • 举报
回复
mark一个,正在做一个在线传呼的!
im_yh 2003-12-10
  • 打赏
  • 举报
回复
两种方法:
1. xmlhttp

2.隐藏帧来

网上有好多用这两种方法实现的聊天室的源代码,
google搜一下“无刷新‘
dingyanwei 2003-12-10
  • 打赏
  • 举报
回复
聊天室没有刷新,怎么弄的?
lujianjian 2003-12-10
  • 打赏
  • 举报
回复
关注
超级大笨狼 2003-11-19
  • 打赏
  • 举报
回复
innertext属性也长用
超级大笨狼 2003-11-19
  • 打赏
  • 举报
回复
dhtml传递过来采用
window.parent.frames("主框架名").对象.value=新数据
超级大笨狼 2003-11-19
  • 打赏
  • 举报
回复
用隐藏框架的办法,我以前做过,刷新框架里面隐藏的数据,用dhtml传递过来。
刷新用window.settimeout "window.location.href=*.asp",1000
来实现,无声音
hover_online 2003-11-19
  • 打赏
  • 举报
回复
web进程是这样的,没有客户端发出的请求,服务器端是不会自动产生进程去刷新数据库,除非你又别的服务器端的程序,所以必须有一个页面保持刷新以请求服务器响应,你可以做一个隐藏的帧满足客户要求。或者你在服务器端写一个后台程序,一直保持刷新数据库的请求。
<IFRAME style="display:none" name="myiframe" src="http://www.sina.com.cn"></IFRAME>
  • 打赏
  • 举报
回复
想来想用,用XMLHTTP还是不爽,特别是你不是在自己局域网内用。
还是用隐藏帧来实现吧
Justin1818 2003-10-18
  • 打赏
  • 举报
回复
WhiteRiver(白河)
我也想要一份呀
ekuan_1818@sina.com
1蓝天1 2003-10-18
  • 打赏
  • 举报
回复
学习
zhang_luo 2003-10-18
  • 打赏
  • 举报
回复
用XMLHTTP吧
不过其实我是不赞成用XMLHTTP的,尽管能达到刷新的效果,可是一是浏览器支持(我用的时候是这样)
还有就是给系统带来很大负载,占系统资源啊
不理想,不过我也没别的办法,郁闷啊!~~~~~~~~~如果有谁有更好的办法,多多指点啊

楼主~~~~~~~~~~~XMLHTTP凑合着用吧
qunluo 2003-10-18
  • 打赏
  • 举报
回复
谢谢支持!
pjchuqi 2003-10-18
  • 打赏
  • 举报
回复
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="vbscript">
Function bytes2BSTR(vIn)

Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn = ""

For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next

bytes2BSTR = strReturn

End Function
</script>
<script language="JavaScript">
function getXML(URL) {
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("GET",URL, false);
try {
xmlhttp.Send();
var result = xmlhttp.status;
}
catch(e) {
return(false);
}
if(result==200) {
return(bytes2BSTR(xmlhttp.responseBody));
}
var xmlhttp = null;
}
function update()
{
//alert("页面开始更新");
document.body.innerHTML = getXML('score2.asp'+'?tem='+Math.random());
}
setInterval("update()",1000)
</script>
</head>
<body>
</body>
</html>

以前提问时别人回复我的,看看你是不是适用!
nchen123 2003-10-18
  • 打赏
  • 举报
回复
没有任何刷新
qunluo 2003-10-18
  • 打赏
  • 举报
回复
这样做,前台会有页面视觉上的变化吗?抖动都可以!但是千万不要有想刷新的感觉啊!(重新下载页面)我再试试!
nchen123 2003-10-18
  • 打赏
  • 举报
回复
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

set req= Server.CreateObject("Microsoft.XMLDOM")
req.async=false
req.load(Request)
if req.documentElement.nodeName="timesheet" then
Response.write("<b>"+req.documentElement.text+"</b><br>")
end if
else
%>
无刷新的!


<Script Language="JavaScript">
function scroller()
{
this.scroll(10,65000);
setTimeout("scroller()",20);
}
scroller();
</Script>

<script language="VBScript">
Function bytes2BSTR(vIn)
Dim strReturn,i,ThisCharCode,innerCode,Hight8,Low8,NextCharCode
strReturn = ""

For i = 1 To LenB(vIn)
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
</script>
<div id="divDisplay"></div>
<input type="text" value="" id="txt">
<input type="button" onclick="sendData();" value="Send it!">
<script>
function sendData(){
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("POST", "xml.asp", false);
xmlhttp.Send("<timesheet>"+document.all("txt").value+"</timesheet>");
divDisplay.innerHTML=divDisplay.innerHTML+bytes2BSTR(xmlhttp.responseBody);
}
</script>
<%end if%>
nchen123 2003-10-18
  • 打赏
  • 举报
回复
xmlhttp
qunluo 2003-10-18
  • 打赏
  • 举报
回复
使用隐藏帧+js方法
兄弟们!能够发份来俺瞅瞅么?急啊!还等大家帮我完成这次项目呢!客户就是这样的需求,俺又没这样做过!拜托!!!!分不够,另开倒给你都得啊!呵!!!!!
加载更多回复(25)

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧