我正在开发一个具有登录,个人资料查看功能的网站。所以我正在使用登录并进入配置文件部分。 我正确部署了登录部分。我收回了一系列数据以填写profile.html页面。但是,当我使用location.href访问profile.html页面时,我似乎丢失了这些数据,因为login.js已经重新加载。 我已经尝试将所有jQuery代码(登录和配置文件)保留在login.js中,但是,当我点击location.href函数时,它不起作用,整个JS文件重新加载。每当我点击location.href函数时,我的场景/解决方案的每个人都会停止。 我使用console.log检查了数据的有效性,并在div的屏幕上打印出来(在登录页面中)。
我的问题是如何加载profile.html页面而不会丢失数组中的数据? 我提供了login.js的代码,虽然我不认为这是必要的。
function getData()
{
$.ajax(
{
url:"http://localhost/dataFetch.php",
dataType:"json",
type:"GET",
success: function(suc)
{
mainArray = suc;
location.href="temp.html";
length = mainArray["desc"].length;
},
error: function(err)
{
alert("connection to server has be interrupted");
console.log(err);
}
});
}
提前致谢。
答案 0 :(得分:1)
如果已登录,您可以使用sessionStorage
存储变量:
sessionStorage.setItem("loggedInStatus", "In");
然后在页面加载时你可以使用if语句,如果它返回true,则使用$.getScript()
方法:
var variable = sessionStorage.getItem("loggedInStatus");
if (variable != null) {
$.getScript( "ajax/test.js", function( data, textStatus, jqxhr ) {
console.log( data ); // Data returned
console.log( textStatus ); // Success
console.log( jqxhr.status ); // 200
console.log( "Load was performed." );
});
}
else {
// do whatever
}
编辑:如果您这样做,您可能希望确保在注销时使用sessionStorage.removeItem("loggedInStatus");
清除变量。