Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每个浏览器会话运行一次脚本,但在结束时冻结脚本_Javascript_Session_Cookies - Fatal编程技术网

Javascript 每个浏览器会话运行一次脚本,但在结束时冻结脚本

Javascript 每个浏览器会话运行一次脚本,但在结束时冻结脚本,javascript,session,cookies,Javascript,Session,Cookies,我有一个网站在开发中,我很高兴与介绍。但是,我需要该脚本在浏览器会话中运行一次,然后在会话的其余部分保持其最终状态。这是可能的,还是我应该重新安排一些事情。我是个新手,需要一些帮助!我的介绍脚本如下: var words=[“网站”、“动画”、“品牌”、“插图”]; var i=0; var final=“thirdrail”; var splash=setInterval(函数(){ $(“#word”).hide().html(words[i++]).fadeIn(500); 如果(i==

我有一个网站在开发中,我很高兴与介绍。但是,我需要该脚本在浏览器会话中运行一次,然后在会话的其余部分保持其最终状态。这是可能的,还是我应该重新安排一些事情。我是个新手,需要一些帮助!我的介绍脚本如下:

var words=[“网站”、“动画”、“品牌”、“插图”];
var i=0;
var final=“thirdrail”;
var splash=setInterval(函数(){
$(“#word”).hide().html(words[i++]).fadeIn(500);
如果(i==words.length+1){
$(“#word”).html(最终版);
间隙(飞溅);
var time=setTimeout(函数(){
$(“.overlay”).addClass(“级别”);
$(“单词”).addClass(“之前”);
$(“.logo”).addClass(“最终版”);
$(“#static”).html(“”);
$(“nav”).css('右','-20px');
$(“.icon”).css('right','5%”);
}, 2000);
}

}, 1000);您可以使用cookie或本地存储:

if(localStorage.getItem("intro"){
//go to normal page
}else{
localStorage.setItem("intro",true);
//show intro
}

就像我写这篇文章时山姆所说的…

如果需要,请完成示例
var final=“thirdrail”;
函数startSplash(){
var words=[“网站”、“动画”、“品牌”、“插图”];
var i=0;
var splash=setInterval(函数(){
$(“#word”).hide().html(words[i++]).fadeIn(500);
如果(i==words.length+1){
$(“#word”).html(最终版);
间隙(飞溅);
var time=setTimeout(函数(){
endSplash();
setItem(“splashed”,true);
}, 2000);
}
}, 1000);
}
函数endSplash(){
$(“#word”).html(最终版);
$(“.overlay”).addClass(“级别”);
$(“单词”).addClass(“之前”);
$(“.logo”).addClass(“最终版”);
$(“#static”).html(“”);
$(“nav”).css('右','-20px');
$(“.icon”).css('right','5%”);
}
如果(!sessionStorage.getItem(“splashed”)){
startSplash();
}否则{
endSplash();

}
设置一个cookie…你可以查看HTML5的会话存储,或者如果它对你来说过期太早,可以查看LocalStorage。您可以在其中任何一个中设置一个标志,并在页面加载时检查它。如果它有标志,跳过介绍。它们非常棒!这是Mozilla的SessionStorage页面的一个链接。谢谢各位,我确实看过SessionStorage,但我想不出最好的方法来组织介绍。因为,介绍页面会在我的站点标题中设置动画。因此,我需要脚本在其最终状态(标题)中“冻结”,这有意义吗?显然,对于所有内部页面,我可以只创建一个固定的页眉,但不能使用主页…您可以将脚本保留为未访问该页面的用户的脚本,但如果他们具有SessionStorage标志,则会触发另一个脚本,直接进入结束状态。例如:
如果访问,触发冻结;如果未访问,则触发正常脚本好的,但是你忽略了那些禁用js或者网络连接非常低的人(我)。因此,我建议您将普通内容硬编码为html,如果您将介绍内容显示为介绍状态,然后让其淡出…他所说的是渐进增强。这意味着您将编写一个为禁用所有功能的用户工作的站点,然后向其中添加一些东西,以增强具有javascript但不需要使用该站点的用户的体验。如果我要写一个个人网站,tbh我会说忘记3.6%不使用JavaScript,但这取决于你。如果它是面向业务的,你可能想考虑36/1000个坏网站评论能做什么。谢谢@br3t的一个快速问题-
endSplash
函数不包括
startSplash
中定义的数组。。。无法访问“final”变量。在
endSplash
函数中创建另一个“final”变量可以吗?我已经做了一些修改,试试看。