将数据存储在javascript数组中以供进一步使用

storing data in javascript array for further use

本文关键字:进一步 数组 数据 存储 javascript      更新时间:2023-09-26

我有一个页面用户,其中显示了一些基本数据:个人资料照片、昵称、年龄、位置等。当你点击个人资料时,它会用ajax加载数据,并在弹出窗口中显示用户个人资料。所以你们保持一致。

但是每个ajax调用都需要一些时间来调用服务器端代码并获取数据。它并不慢,但我想让用户配置文件显示超快。我在想,如果我在获取配置文件列表的第一个位置提取所有配置文件数据,会更快。我可以提取所有的配置文件数据,而不是只在用户页面上获取一些数据。然后我可以将javascript中的数据保存为数组。当用户点击概要文件时,它不会进行ajax调用,但会从javascript数组中提取数据。这样,我认为弹出窗口会很快显示出来。

到目前为止,这只是一个想法。可以将我收到的数据存储在javascript数组中吗?或者有更好的方法吗?

使用javascript对象

在php中获取用户信息,并将其传递给html 中js中的函数

<script>buildUserInfo(array('user_id,yaz,20,male,837367.jpg',....));</script>

然后创建一个js对象,但是中的这些值

var userObject = new Object();
function buildUserInfo(data){
  for(var i=0;i<data.length();i++){
    var dataIn = data[i].split(',');
    userObject[user_id].name = dataIn[0]; 
    userObject[user_id].age = dataIn[1]; 
    userObject[user_id].gender = dataIn[2]; 
    userObject[user_id].photo = dataIn[3]; 
}}

然后您可以通过简单地调用对象来访问它们如果你不知道这个名字,只需拨打userObject[user_id].name

更新:对于多个用户,通过创建一个对象数组,我编辑上方的代码

我建议使用localStorage:

那么什么是HTML5存储?简单地说,这是网页在客户端web浏览器中本地存储命名键/值对的一种方式。与cookie一样,即使在您离开网站、关闭浏览器选项卡、退出浏览器或其他操作之后,这些数据也会持续存在。与cookie不同,这些数据永远不会传输到远程网络服务器(除非您特意手动发送)

尽管这是一个新功能,并非所有旧浏览器都支持,但您可以使用像jStorage这样的库来缓解这些情况。

jStorage在可用的情况下使用HTML5本地存储,并在旧版本的Internet Explorer中使用userData行为

为什么不使用JSON?像这样在页面加载时初始化json对象,您将立即获得所有数据,而无需任何ajax请求。

var users = <?php echo json_encode($users); ?>;