Я пытаюсь сделать просмотрщик слайд-шоу для ряда книг с главами. «Слайды» - это фрагменты HTML-данных, хранящихся в базе данных. Глава может состоять из 50-100 слайдов, но они довольно маленькие (1-2 КБ каждый и картинки в некоторых). Я хочу, чтобы у пользователя были кнопки для перехода к предыдущему и следующему слайду и минимизации времени загрузки.
Теперь у меня есть страница PHP под названием ContentFetcher.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
внутри замыкания?