我有一个页面的一部分,其中包含实时数据,我想每隔几分钟刷新一次页面,但由于页面的其他元素,这是不正确的。
我该怎么办?我可以用什么语言来做这件事,什么是容易做什么,什么不做,什么做得好,什么做不好。也许是一些清晰的教程甚至是代码示例。
我会像PHP一样生活,但是没有线索从哪里开始,从一些研究我看到Javascript和Ajax似乎是这个的标准,但我对这些语言的了解没有达到标准。
感谢您抽出时间并帮助别人。
哦,如果有任何帮助,显示的数据来自数据库。
再次感谢。
答案 0 :(得分:16)
您可以使用jQuery等Javascript库,并执行以下简化示例:
$("document").ready(function(){
var interval = setInterval(refresh_box(), 60000);
function refresh_box() {
$("#myDiv").load('path/to/databasepage.php');
}
} /*<= The closer ) bracket is missing in this line*/
并在path/to/databasepage.php
页面中,您可以选择查询并回显结果。
这样做会设置超时以每隔60秒(即60,000毫秒)调用一个函数(在本例中为refresh_box()
)并将path/to/databasepage.php
中的数据加载到您的div中id myDiv
。
修改强>
如果要停止自动刷新,可以通过执行以下操作绑定元素以清除间隔:
// assuming you have a clickable element
// (typically a button or so) id called 'stop_refresh'
$("#stop_refresh").click(function(){
clearInterval(interval);
}
答案 1 :(得分:5)
最简单的方法甚至不涉及PHP或JavaScript。您可以使用纯HTML中的<iframe>
来完成此操作。 iframe使用适当的刷新标头加载HTML或PHP页面,并自行刷新。
主HTML页面:
<html>
<head></head>
<body>
static content
<iframe id='dynamic-content' src='refreshing.php' />
</body>
</html>
refresh.php页面:
<html>
<head>
<!-- refresh every 5 seconds -->
<meta http-equiv="refresh" content="5">
</head>
<body>
dynamic content
</body>
</html>
请注意,不鼓励<meta http-equiv="refresh">
一般刷新整个页面,但在iframe中使用非常安全,iframe必须不断刷新。
答案 2 :(得分:3)
你无法真正为PHP中的页面组件执行实时刷新,AJAX是最常用的手段(异步Javascript和Xml) - 它使用Javascript轮询其他脚本(可以是.php页面),然后返回基于的预定义输出请求 - 此输出可以是注入页面的内容,也可以是您的页面可以解释为另一个操作的数据。
在这种情况下,您的.php页面将包含头部的JS(javascript),无论是链接还是内联,其中包含启动AJAX请求的详细信息 - 即,频率或触发的按钮(按下按钮等),通过什么方式(POST或GET),发送的内容(您希望的任何其他变量),目标脚本是什么(将处理请求并输出所需内容/数据的脚本),以及响应时要执行的操作收到(即页面上的哪个元素应该用响应更新)。
关于AJAX的一点点:
http://webdesign.about.com/od/ajax/a/aa101705.htm
http://webtrends.about.com/od/web20/a/what-is-ajax.htm
可能最简单的方法是使用一个预先存在的Javascript库,如无处不在的jQuery(jquery.com),有成千上万的教程,虽然你需要做一些Javascript编程,库意味着您可以依赖相当简单的语法(就像$('#myelement').load('mypage.php')
一样简单):
http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/
http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/
http://www.sitepoint.com/ajax-jquery/
http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/
简单来说:
答案 3 :(得分:0)
这真是个大问题。
最常见的方法是使用AJAX,但你也可以使用javascript数据库作为TaffyDB - The JavaScript Database(从未使用它,所以我真的不能谈论它。)
无论如何,最简单的方法是使用JQUERY。