通过JSON、JQUERY、PHP进行图像预加载

通过JSON、JQUERY、PHP进行图像预加载,php,jquery,json,Php,Jquery,Json,我试图通过php和JSON制作一个自动预加载程序,因为目前没有其他预加载程序适合我的目的。我正在开发一个WAMP安装,php版本为5.3.0,apache版本为2.2.11,使用以下php代码: $rootDir = dirname(__FILE__).'/..'; $imgdir = opendir($rootDir.'/images/'); $i=0; while ($file = readdir($imgdir)) { if (($file != '.') && ($f

我试图通过php和JSON制作一个自动预加载程序,因为目前没有其他预加载程序适合我的目的。我正在开发一个WAMP安装,php版本为5.3.0,apache版本为2.2.11,使用以下php代码:

$rootDir =  dirname(__FILE__).'/..';
$imgdir = opendir($rootDir.'/images/');
$i=0;

while ($file = readdir($imgdir))
{
if (($file != '.') && ($file != '..'))
{
$fileList[$i] = $file;
$i++;
}
}

$json=json_encode($fileList, JSON_FORCE_OBJECT);
die($json);
我的Jquery目前是内联/嵌入的(版本1.4.2),如下所示:

$(document).ready(function(){
    $.ajax({
        type: "GET",
        url: "preload/reader.php",
        dataType: "JSON",
        success: function(data){
            alert(data);
        }
    });
});
在警报框中有以下输出:;{“0”:“BlueHills.jpg”,“1”:“deagle_descr.jpg”,“2”:“mod.jpg”}

当我想对数据执行任何其他操作时,问题实际上就开始了,页面永远无法完成加载,就像它被卡在无限循环中一样。即使只是像document.write(data)这样的简单语句;在我点击浏览器中的“停止”按钮之前,页面一直处于加载状态。我是JSON的新手,请帮忙

  • 使用getJSON
  • 在getJSON的回调函数中,开始向DOM添加标记,但默认情况下是隐藏的
  • 然后在需要时显示新图像
  • 使用getJSON
  • 在getJSON的回调函数中,开始向DOM添加标记,但默认情况下是隐藏的
  • 然后在需要时显示新图像

  • 如果您是JSON/AJAX新手,您可能还想签出
    getJSON()
    ,尝试发布一段您试图对数据执行的操作。如果您是JSON/AJAX新手,您可能想签出
    getJSON()
    ,还可以尝试发布一段您试图对数据执行的操作。我将上述AJAX替换为$.getJSON(“preload/reader.php”,函数(数据){$.each(数据,函数(i,当前){document.write(当前+“
    ”);});但这仍然不能解决我的问题,即在firefox中,页面拒绝完成加载,直到我在浏览器中点击“停止”按钮。未完成加载的页面可能来自其他地方。检查Firebug控制台中发出的所有请求。通过检入Firebug,我想你的意思是打开“网络”选项卡,查看所有请求。好吧,你已经离开了ck它完全没有显示任何东西,我知道它正在工作,因为我在WAMP的本地主机页面上运行了firebug,一个it all弹出。对于ina的好处:我试图将php数组编码为JSON对象,将其传递给JQuery将结果解析为Javascript数组,循环通过Javascript数组预加载所有图像。我唯一能确定的是它有与AJAX有关的东西XHR就像我在加载JSON对象后删除所有操作一样,脚本加载一切正常。不,我是说Firebug的控制台。第一个选项卡。这是一个屏幕截图:。它显示了所有进行的AJAX调用,您将看到它们何时完成。ina请求了一个代码段,而不是解释。我替换了上面的ajax使用$.getJSON(“preload/reader.php”,函数(data){$.each(data,函数(i,current){document.write(current+“
    ”);});但这仍然不能解决我的问题,即在firefox中,页面拒绝完成加载,直到我在浏览器中点击“停止”按钮。未完成加载的页面可能来自其他地方。检查Firebug控制台中发出的所有请求。通过检入Firebug,我想你的意思是打开“网络”选项卡,查看所有请求。好吧,你已经离开了ck它完全没有显示任何东西,我知道它正在工作,因为我在WAMP的本地主机页面上运行了firebug,一个it all弹出。对于ina的好处:我试图将php数组编码为JSON对象,将其传递给JQuery将结果解析为Javascript数组,循环通过Javascript数组预加载所有图像。我唯一能确定的是它有与AJAX有关的东西XHR就像我在加载JSON对象后删除所有操作一样,脚本加载一切正常。不,我是说Firebug的控制台。第一个选项卡。这是一个屏幕截图:。它显示了所有进行的AJAX调用,您将看到它们何时完成。ina请求了一个代码段,而不是解释。