2012-07-18 138 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