2012-04-09 39 views
0

我使用http://datatables.net/examples/來簡化控制表。我從MySQL表中生成超過30,000條記錄的表,並且加載非常緩慢。我想緩存這張表,並認爲一切都會更快。我用ob_get_contents(),但緩存文件大小爲26MB。我怎樣才能創建緩存文件,使一切都變得更快?用php生成緩存文件?

+4

你正在以這種錯誤的方式行事。你應該只需要加載你需要的東西。沒有理由一次有30k行數據。 http://datatables.net/release-datatables/examples/data_sources/ajax.html – MetalFrog 2012-04-09 11:49:38

+2

正如@MetalFrog所說,一頁上的30k行將是瘋狂的。我會考慮某種形式的分頁或過濾。 – BenOfTheNorth 2012-04-09 11:51:32

+0

另請嘗試查看檢索30k行的查詢實際需要多長時間。我的猜測是JavaScript處理和html渲染實際上需要時間。 – kontur 2012-04-09 12:17:01

回答

0

如果輸出緩衝區大小爲26MB,那麼問題在於,瀏覽器在服務器生成頁面後需要很長時間才能下載頁面。您應該限制返回的行數,或者使用分頁系統。

對於分頁,我會做這樣的事情:

有一個像網址:http://website.com/script.php?start=3000

,然後像做

$start = mysql_real_escape_string($_GET['start']); 
$sql = "SELECT * FROM table LIMIT $start, 100"; 

你會再想要打印出鏈接到下一頁的網頁上的網址:

$nextpage = $start + 100; 
echo "<a href='/script.php?start=$nextpage'>Next Page</a>";