0

大家好,我正在尝试在不加载(刷新)页面时显示一些随机图像

那么如何在不刷新页面的情况下在页面上显示随机图像?

<script type="text/javascript">
    $(function () {
        $.ajax({
            type: "get", url: "Home/Oku", data: {}, dataType: "json",
            success: function (data) {
                for (var i = 0; i < data.length; i++) {
                   var newFirmDiv= $(' <img src="../../banner_image/' + data[i] + '" width="154px" height="108px"/>');
                   $(".firmShowCase").append(newFirmDiv);
                }
            }
        });
    });
</script>

这是我的操作方法,它提供返回值一个数组

 public ActionResult Oku()
    {
        var query = from table in db.news select table.news_image_name;
        return Json(query, JsonRequestBehavior.AllowGet);
    }

这是结果,如下所示

在此处输入图像描述

4

1 回答 1

0

第二次尝试:

最小值和最大值函数

(http://www.naden.de/blog/zufallszahlen-in-javascript-mit-mathrandom)

function getRandom(min, max) {
 if(min > max) {
  return -1;
 }

 if(min == max) {
 return min;
 }

 var r;

 do {
 r = Math.random();
 }
 while(r == 1.0);
 return min + parseInt(r * (max-min+1));
}

和你的代码

for (var i = 0; i < data.length; i++) {
        randomIndex = getRandom(0, data.length-1);
        var newFirmDiv= $(' <img src="../../banner_image/' + data[randomIndex] + '"width="154px" height="108px"/>');
        $(".firmShowCase").append(newFirmDiv);
    }

如果你想保持随机顺序......

...您必须像在新数组中一样保存它,然后您可以通过 ajax 将其保存在数据库或临时文件中。在当前文件的顶部,您必须检查是否存在现有临时文件;如果它应该绑定到用户,您可以生成一个随机密钥(如时间)将其保存在会话变量中,并使用相同的随机密钥命名 tmp 文件或数据库中的数据......到目前为止我的想法,如果这就是你要找的东西。当然,从一开始就在服务器端执行此操作会更容易。

第一个答案:

(问题不是很清楚 - 如果某些东西不起作用等等......)

首先,数据不是作为数组返回,而是作为对象返回。但是我觉得你对ajax函数的参数不是很了解。

在 url 参数中应该是要执行的脚本(例如 getImages.php)。所以你应该在那里收集图像,将它们解析为 jason 并打印它们,这样它将作为数据返回。

在参数数据中,您可以将一些参数传递给脚本,您可以通过在 php.ini 中对它们进行解码来获得这些参数。

例如,我只是选择了 PHP。

如果我错了并且“Home/Oku”会导致一些脚本,您可能会向我们展示它的作用?

于 2012-08-10T14:09:23.390 回答