首页 > 解决方案 > 如何使重定向不是随机的并遵循顺序?

问题描述

我有这段代码,我打算每次同一个用户重新加载页面时将其重定向到不同的 URL,问题是有时它会重定向到列表中的相同 URL,而我正在寻找的是遵循订单. 例如:url1、url2、url3。

var URLlist = ["url1.html", "url2.html", "url3.html"];
var reDelay = 0000;
setTimeout(function () {
    window.location = URLlist[Math.floor(Math.random() * URLlist.length)];
}, reDelay);

标签: javascriptredirect

解决方案


也许是这样的:

var URLlist = ["url1.html","url2.html","url3.html"];
//URLs a las que el usuario ha sido redireccionado.
var urlsRedireccionado = JSON.parse(window.localStorage.getItem("urls_redireccionado")) || [];

var reDelay = 0000;

setTimeout(function(){
    //La siguiente URL en el orden en que han sido agregadas en la variable URLlist
    var next = URLlist.find(u => !urlsRedireccionado.some(ur => ur == u));
    //Si faltan URL por redireccionar
    if(next) {
        urlsRedireccionado.push(next);
        window.localStorage.setItem("urls_redireccionado", JSON.stringify(urlsRedireccionado));
        window.location = next;
    } else {
        //Para que la proxima vez que recargue sea redirigido a todas las URL anteriores
        window.localStorage.removeItem("urls_redireccionado");

        //Redireccionado a todas partes
    }

}, reDelay);

推荐阅读