我的网站有大约 50 张背景图片。我要做的是为每次访问随机向用户展示不同的用户。我的意思是,他们将在访问期间使用相同的背景图片浏览网站。
在他们关闭浏览器并重新访问或稍后返回访问后,他们会看到一个新的随机背景图像。不需要在他们以前的背景图像上保存任何内容,只需为每次新访问该站点时随机一个新的。
不确定这是否可以使用 C#、Javascript、JQuery 或 CSS 完成。
编辑:我正在为我的网络应用程序使用 ASP.net 4.0 C#。谢谢
我的网站有大约 50 张背景图片。我要做的是为每次访问随机向用户展示不同的用户。我的意思是,他们将在访问期间使用相同的背景图片浏览网站。
在他们关闭浏览器并重新访问或稍后返回访问后,他们会看到一个新的随机背景图像。不需要在他们以前的背景图像上保存任何内容,只需为每次新访问该站点时随机一个新的。
不确定这是否可以使用 C#、Javascript、JQuery 或 CSS 完成。
编辑:我正在为我的网络应用程序使用 ASP.net 4.0 C#。谢谢
不要cookies
按照评论中的说明使用。这只会为发送到服务器的标头消息增加额外的带宽。
相反,使用浏览器中的本地存储来保存他们使用的最后一张图片。当一个新会话开始时,增加这个值,并显示下一个图像。
我在项目中使用了jStorage,它运行良好。
您可以将当前显示的图像保存在他们的浏览器存储中,也许还可以保存一个会话 ID。稍后,您可以检查会话 ID 是否已更改。如果是这样,则更改为不同的图像。
var image = $.jStorage.get("image", 0);
var session_id = $.jStorage.get("session", "put current session id here");
if(session_id != "current session id")
{
image = (image < 50) ? 0 : image+1;
$.jStorage.set("image",image);
$.jStorage.set("session","current session id");
}
// use image to set background
编辑:
不要将此 JavaScript 放置在每个网页中。相反,将其放置在作为 Javascript 内容类型响应的 ASP.NET 页面中,并通过页面的标题加载它。这样,当会话更改时,浏览器上的页面缓存不会影响脚本。
将其保留在会话中。当它不在会话中时随机选择它,只要他们在您的站点上,它就会保持不变——下次他们回来时,他们会得到一个新的。
例如(我的 C# 有点生疏):
public getBackground (HttpSessionState session) {
String bg = (string) session["session.randomBG"];
if (bg == null) {
// pick a random BG & store it.
bg = "pick one";
session["session.randomBG"] = bg;
}
return bg;
}
希望这可以帮助!
当然有可能。我将在这里使用伪代码向您展示它是如何完成的。很快就会出现 Java 中的示例。
在每一页的开头:
StartSession()
If ! SessionVariable[myBackground] then
x=Randomize 50
SessionVariable[myBackground]="image0" + x + ".jpg"
endif
<style>
body {background-image:url(SessionVariable[myBackground];}
</style>
确保在适当的地方使用样式标签。SessionVariable[myBackground] 是用户创建的。在 PHP 中,它看起来像这样:
$_SESSION['myBackground']
最好的祝愿,
var list = [
"/images01.png",
"/images02.png",
...
];
/*background url*/ = list[Math.floor(Math.random()*list.length];
试试这个功能:
/**
* Change background image hourly.
* Name your images with 0.jpg, 1.jpg, ..., 49.jpg.
*/
function getBackground2() {
var expires = 3600000,
numOfImages = 50,
seed = Math.round(Date.now() / expires % numOfImages);
return '/path/to/background/' + seed + '.jpg';
}