Php 在不刷新的情况下更新页面上的数据
我有一个网站,我需要更新状态。 就像飞行一样,你要出发、巡航或着陆。 我希望能够刷新状态,而不必让我的查看器拥有并重新加载整个页面。我知道有一种方法可以用AJAX和jQuery实现,但我不知道它是如何工作的。我也不希望他们有和点击一个按钮。Php 在不刷新的情况下更新页面上的数据,php,jquery,ajax,refresh,Php,Jquery,Ajax,Refresh,我有一个网站,我需要更新状态。 就像飞行一样,你要出发、巡航或着陆。 我希望能够刷新状态,而不必让我的查看器拥有并重新加载整个页面。我知道有一种方法可以用AJAX和jQuery实现,但我不知道它是如何工作的。我也不希望他们有和点击一个按钮。 如果有人知道该怎么做,我非常感激 一般来说,如果你不知道某件事是如何运作的,那就找一个你可以学习的例子 对于这个问题,考虑 您可以看到,使用AJAX加载内容非常容易通过jQuery完成: $(function(){ // don't cache aj
如果有人知道该怎么做,我非常感激 一般来说,如果你不知道某件事是如何运作的,那就找一个你可以学习的例子 对于这个问题,考虑 您可以看到,使用AJAX加载内容非常容易通过jQuery完成:
$(function(){
// don't cache ajax or content won't be fresh
$.ajaxSetup ({
cache: false
});
var ajax_load = "<img src='http://automobiles.honda.com/images/current-offers/small-loading.gif' alt='loading...' />";
// load() functions
var loadUrl = "http://fiddle.jshell.net/deborah/pkmvD/show/";
$("#loadbasic").click(function(){
$("#result").html(ajax_load).load(loadUrl);
});
// end
});
您也可以定期执行此操作:
我为您制作了这个实现的演示。在这个演示中,每2秒钟(setTimeout(worker,2000);
)就会更新内容
您也可以立即加载数据:
$("#result").html(ajax_load).load(loadUrl);
它有相应的演示。您可以从jQuery官方网站上阅读关于jQuery Ajax的内容: 如果您不想使用任何单击事件,则可以设置定时以进行定期更新 下面的代码可能会帮助您只是一个例子
function update() {
$.get("response.php", function(data) {
$("#some_div").html(data);
window.setTimeout(update, 10000);
});
}
上述函数将在每10秒后调用,并从response.php获取内容,并在
#some_div
中更新。我想您应该先学习ajax
,尝试以下方法:
如果您想知道ajax是如何工作的,那么直接使用jQuery并不是一种好方法。我支持学习向服务器发送ajax请求的本机方法,请参阅关于XMLHttpRequest
:
var xhr = new XMLHttpReuqest();
xhr.open("GET", "http://some.com");
xhr.onreadystatechange = handler; // do something here...
xhr.send();
假设您想在网页上显示一些实时提要内容(比如livefeed.txt),而不进行任何页面刷新,那么下面的简化的示例适用于您 在下面的html文件中,live数据在id“liveData”的div元素上更新 index.html
<!DOCTYPE html>
<html>
<head>
<title>Live Update</title>
<meta charset="UTF-8">
<script type="text/javascript" src="autoUpdate.js"></script>
</head>
<div id="liveData">
<p>Loading Data...</p>
</div>
</body>
</html>
出于测试目的:只需在livefeed.txt中编写一些内容-您将在index.html中得到相同的更新,而无需任何刷新
livefeed.txt
Hello
World
blah..
blah..
注意:您需要在web服务器上运行上述代码(例如:http://localhost:1234/index.html)不作为客户端html文件(例如:file:///C:/index.html).大家好,欢迎来到SO。它不像elancer.com那样工作,所以您需要先找到一些代码,然后询问具体问题!谢谢你的建议!但在你的例子中,我也需要点击一个按钮,有没有一种方法可以在不点击的情况下更新数据?这个链接可能会对你有更多帮助:它正在工作,但当它被更新时,我如何才能进入页面底部??这是可能的
<!DOCTYPE html>
<html>
<head>
<title>Live Update</title>
<meta charset="UTF-8">
<script type="text/javascript" src="autoUpdate.js"></script>
</head>
<div id="liveData">
<p>Loading Data...</p>
</div>
</body>
</html>
window.addEventListener('load', function()
{
var xhr = null;
getXmlHttpRequestObject = function()
{
if(!xhr)
{
// Create a new XMLHttpRequest object
xhr = new XMLHttpRequest();
}
return xhr;
};
updateLiveData = function()
{
var now = new Date();
// Date string is appended as a query with live data
// for not to use the cached version
var url = 'livefeed.txt?' + now.getTime();
xhr = getXmlHttpRequestObject();
xhr.onreadystatechange = evenHandler;
// asynchronous requests
xhr.open("GET", url, true);
// Send the request over the network
xhr.send(null);
};
updateLiveData();
function evenHandler()
{
// Check response is ready or not
if(xhr.readyState == 4 && xhr.status == 200)
{
dataDiv = document.getElementById('liveData');
// Set current data text
dataDiv.innerHTML = xhr.responseText;
// Update the live data every 1 sec
setTimeout(updateLiveData(), 1000);
}
}
});
Hello
World
blah..
blah..