AJAX Div用PHP刷新

JD *_*udi 0 ajax jquery partial-page-refresh

我试图每隔一段时间刷新页面上的某些元素。我知道这里有上百万个主题,我已经尽力使我的工作正常下来,但这就是我需要刷新的内容。

这是页面加载时生成的代码:

<div id="galleria">

    <?php
    $a = array();
    $dir = '../public/wp-content/uploads/2012/01';
    if ($handle = opendir($dir)) {
      while (false !== ($file = readdir($handle))) {
        if (preg_match("/\.png$/", $file)) $a[] = $file;
        elseif (preg_match("/\.jpg$/", $file)) $a[] = $file;
        elseif (preg_match("/\.jpeg$/", $file)) $a[] = $file;
      }
      closedir($handle);
    }

    $totalImgs = count($a);
    $imgUsed = array();
    for ($j = 0; $j < 100; $j++)
    {
        do
        {
            $randIndex = mt_rand(0, $totalImgs);
        }
        while ($imgUsed[$randIndex] === TRUE);
        $imgUsed[$randIndex] = TRUE;
        echo "<img src='" . $dir . '/' . $a[$randIndex] . "' />";
    }

    ?>  

</div>
Run Code Online (Sandbox Code Playgroud)

我想每10秒自动刷新一次,但不重新加载页面。我已经阅读过有关ajax的内容,看来这是可能的,但我似乎无法使其正常工作。

这一切都将显示Galleria div,并将100张图像加载到div中。然后,Galleria脚本将接管并很好地显示它。AJAX会更好地工作还是JQuery?

谢谢您的帮助!

Gre*_*tit 5

“ AJAX会更好地工作还是使用jQuery?” -AJAX是一种技术,jQuery是一种库。事实证明,jQuery具有出色的AJAX API。

让我们将这部分PHP称为“ galleria.php”。在原始页面加载时,使用good ol'将其插入父PHP页面<?php include('galleria.php')?>。现在,最终用户将看到完整的初始化页面。

要更新它,您可以使用许多AJAX选项,但是最简单的方法是在页面上包含jQuery,然后可以.load()在脚本中使用它:

var updateGallery = setInterval(function() {
  $('#someDiv').load('galleria.php');
}, 10000);
Run Code Online (Sandbox Code Playgroud)

有调整的余地...可能galleria.php不包括<div id="galleria">页面上设置的。在这种情况下,您可以直接加载#galleria而不是,#someDiv并节省不必要的容器。也许您$('#someDiv')通过在不同的范围内声明对象来缓存该对象,以便可以重新使用它。但这是一般要点。