在php / jquery中为幻灯片放映缓存db结果的最佳方法是什么

时间:2014-03-11 17:56:40

标签: php jquery caching slider

嗨,我实现了一个数据库的幻灯片放映,类似于facebook模式,但只有一个图像/视频和描述。

我决定使用缓存结果以获得更好的性能,现在,我将所有结果缓存在一个数组中,只需++ / - 当用户按下箭头按钮时的索引。我的代码看起来像:

var filesPrev, filesNext, initalFile = new Array();
var currentSlide; // represents the index/key of the current showed file
$(".imgLink").click(function() {
  idFile = $(this).attr("idFile");
  initialFile = load(idFile);  // pseudo code, it loads the first file
  loadImagesBefore(idFile).then(function(answer) { // get 10 images where id < idFile
    filesPrev = answer; // cache the results in an array
    loadImagesAfter(idFile).then(function(answer) { // get 10 images where id > idFile
            filesNext = answer.reverse(); // reverse just for ordering purposes
            //Now add both arrays (next/prev) and the firstFile(array) to slides array
            slides = filesNext;
            slides.push(initialFile);
            currentSlide = slides.length -1; // set current index/key to file(clicked)
            for (var i = 0; i < filesPrev.length; i++) {
                                  slides.push(filesPrev[i]); // push filesPrev to slides array;
            };
            openSlide(); // format view of first image

    });
  });
}

幻灯片控制器的伪代码:

  leftkey.click(function() {
      currentSlide--;
      formatSlide(slide[currentSlide]);
      if (currentSlide == 1) {
        loadMoreFiles('next'); //caching again
      }
  });
  rightkey.click(function() {
      currentSlide++;
      formatSlide(slide[currentSlide]);
      if (currentSlide == slide.length) {
        loadMoreFiles('prev'); //caching again
      }
  });

问题在于当没有更多的文件向左或向右显示时,我希望幻灯片获得“其他”结果(比如facebook,当你点击第一张照片时,按左键,它会让你到最后照片)。

我目前正在检查新加载的结果是否与最后的filesPrev结果的idFiles不匹配。但我想如果我不能以另一种方式做到这一点。也许有2个阵列,一个用于prev,另一个用于下一个文件,你认为哪种方式更好?提前致谢

0 个答案:

没有答案