
[英]Need to upload stats data from a csv file to sql database automatically every day?
[英]Auto Update Stats From SQL Database
我正在尝试获得一种效果,例如http://www.minecraft.net页面,它会自动从数据库中更新销售,我已经研究了两个月了,没有运气。 我有一个php文件,该文件可查找数据库中有多少个结果并将其显示为数字,效果很好http://tzeale.com/sandbox/stats/pull.php
我想做的是获得像minecraft.net这样的效果,它会在不刷新页面的情况下自动更新。 谁能指导我该怎么做? 我不知道还能尝试什么。
谢谢。
h您需要使用AJAX。
setTimeout ,以及对该pull.php的AJAX调用
如果您使用的是jQuery,这是一个有关如何实现所需目标的好示例。 添加了一个简单的逻辑,以查看服务器是否已死机并最终停止。
var failed = 0;
var limit_failed = 5;
(function updateSales( waitTime ){
waitTime = waitTime || 1000; // Set to 1 second by default
setTimeout(function(){
$.ajax({
url: 'pull.php',
success: function( response ){
// Update something with your response
alert ("sales are now at: "+ response);
updateSales(); // Recursion
},
error: function(){
// Error handling - not necessary
// If the request failed more then (limit_failed) times, you might want to stop it from checking after (limit_failed) times,
// and in the meanwhile icnrease the wait time, so the server has more time to get back online.
if( ++failed < limit_failed ){
waitTime += 1000;
updateSales( waitTime );
}
}
});
}, waitTime);
})();
您将使用setTimeout
和Ajax。 setTimeout将使用Ajax获取数据每1000毫秒(或您对其进行设置)获取数据。
您可以将显示计数包装在html
,例如:
<span id="mycount"></span>
然后,您的jQuery代码将如下所示:
setTimeout(function(){
$.get("/sandbox/stats/pull.php",function(data){
$("#mycount").html(data);
});
},1000);
1000
是一秒,您可以根据需要进行更改。 我不知道该如何使其动画,但是一旦获取数据,它就会进入$.get()
函数。 此外,由于相同的来源政策,该地址必须与http://tzeale.com/
处于同一域中,Ajax才能正常工作
但是 ,在查看te minecraft.net网站后,我注意到他们一次将这些数据加载到其页面中,而不是每1秒钟获取一次:
<script>
var justLoggedIn = false;
var totalUsers = 33652552;
var paidUsers = 6495707;
var totalUsersRate = 1.2166667;
var paidUsersRate = 0.15;
</script>
这样一来,他们就无法获得实时数据。 他们只是获取当前金额,然后继续添加1。
他们使用此插件将其设置为动画: http : //timeago.yarp.com/并仍使用setTimeout()
保持每秒向其添加1。 我认为这不是真正的用户,只是从var totalUsers
开始的计数器
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.