JavaScript:设置后立即从本地存储读取,应该返回 undefined?



我在第一个文件中导入了一个索引.php和索引.js文件。从索引中.js我从索引调用一个函数.php该函数使用一些字符串设置localStorage.some_item。在同一个文件索引.js中,在我调用在本地存储中设置的函数后,我试图从相同的localStorage.some_item索引中获取,但我没有得到定义!

这是因为,写入本地存储需要一些时间并且无法立即读取?我试着延迟,阅读它,但得到了相同的结果。也许由于某种原因,脚本是异步运行的,即使它们不应该......这里可能有什么问题?我可以尝试不同的方法来修复它,但我想了解正在发生的事情。

有没有人遇到过这种行为或可以提供帮助? 谢谢

在索引中.js:

setDataInLS();
var sSomeData = localStorage.getItem('some_data');
console.log("localStorage.some_data = ",sSomeData);

在索引中.php:

function setDataInLS(){
$.getJSON("getSomeData.php",function(jData){
console.log(jData);
var sData = JSON.stringify(jData);
localStorage.setItem('some_data', sData);
});
}

在@Bergi的帮助下,我设法找到了解决方案。等待 $.getJSON 和对本地存储的设置完成,直到我从本地存储读取数据。谢谢!

对于反对选民来说,有时因为疲倦,你看不到什么是显而易见的......

最新更新