2012-07-18 139 views
0

我目前正在为我的服务器制作一个小型网页,显示玩家的一些统计数据。它工作的很好,但我只是想知道是否可以减少与数据库的连接数量。目前,我在页面中有一些JQuery代码,刷新其中的一部分以显示最新数据。现在,我从来没有使用JQuery的,所以我做了这样的:减少数据库连接

<script> 
$(document).ready(function() { 
    $("#blocks").load("blocks.php<? if($usePlayer){echo("?player=" . $player);} ?>"); 
    $("#global_stats").load("globalstats.php<? if($usePlayer){echo("?player=" . $player);} ?>"); 
    $("#top_entities").load("entities.php<? if($usePlayer){echo("?player=" . $player);} ?>"); 
    var blockRefresh = setInterval(function() { 
     $("#blocks").load("blocks.php<? if($usePlayer){echo("?player=" . $player);} ?>"); 
    }, 5000); 
    var globalStatsRefresh = setInterval(function() { 
     $("#global_stats").load("globalstats.php<? if($usePlayer){echo("?player=" . $player);} ?>"); 
    }, 30000); 

    $.ajaxSetup({ cache: false }); 
}); 
</script> 

的事情是,我重装需要一个MySQL数据库连接页面的所有三个部分。目前,我在每个页面上都包含db.php,但这似乎相当低效。什么是一个好的方法来做到这一点呢?

呵呵,页面可以在这里看到:http://mc.centrility.nl/stats/

+0

只用一次调用加载所有数据,并将其作为JSON从服务器返回。然后分解JSON数据以填充您的不同区域。 – djot 2012-07-18 13:01:38

+0

djot,我会如何将它与重新加载数据结合起来? – Lolmewn 2012-07-18 13:26:31

+0

而不是使用加载,您可以使用$ .ajax然后使用响应来查找数据然后将其放到divs! – rorypicko 2012-07-18 14:18:13

回答

1

好,更详细:

做只有一个连接到你的服务器all.php。正如RoryPickering所说的那样,为此使用$ .ajax。

在服务器端,只有all.php被调用一次。

将db连接设置为在那里持久化,因此您只需连接一次数据库即可。

我怀疑你只能用一个查询获取所有数据,所以我想你将不得不多次查询数据库。

获取所有数据并将其转换为JSON格式,然后将其返回给客户端。

在客户端,将JSON数据拆分为相应的区域/所需的子数据。

+0

我绝对会试试这个。任何提示/技巧/例子? – Lolmewn 2012-07-18 20:29:59