我正在嘗試爲其中有許多章的書籍製作「幻燈片」查看器。 「幻燈片」是存儲在數據庫中的HTML數據塊。一章可以包含50-100張幻燈片,但它們非常小(每個1-2 kB,圖片中有一些)。我希望用戶有按鈕來點擊上一張和下一張幻燈片,並最小化加載時間。jQuery多個get()從數據庫到數組 - 好主意?
我現在有一個名爲ContentFetcher.php的PHP頁面,它只查詢數據庫以獲取一張幻燈片(節)的內容。
<?php
require_once 'Database.php';
echo Database::getInstance()->getSectionText($_GET["bookID"], $_GET["chapter"], $_GET["section"]);
?>
我的JavaScript運行一個循環,並獲取與$.get()
每個章節當前章節:
$(function() {
<? $db = Database::getInstance(); ?>
var chapterSize = <?= $db->getChapterSize($this->bookID, $this->chapter) ?>;
var chapterContent = []; // this is where I want to store the contents
var currentSection = <?=$this->section;?>;
for (var i = 1; i <= chapterSize; i++) {
$.get("ContentFetcher.php", {
bookID : <?= $this->bookID ?>,
chapter : <?= $this->chapter ?>,
section : i
}, function(data) {
chapterContent.push(data);
});
}
$("#slides").html(chapterContent[currentSection]); // show the current slide
});
所以這是一個好主意性能明智?如果是這樣,我對JS閉包的理解還不是很好 - 我如何在閉包內部訪問相同的chapterContent
?
我第二。 HTTP請求會產生巨大的開銷(對於服務器和客戶端)。如果一頁實際上大約爲1-2 kB,那麼您可以一次加載整個章節(並且在您接近特定頁面時動態顯示圖片)。 – RamboNo5