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

时间:2012-09-12 13:15:25

标签: php javascript ajax

我有页面用户,其中显示的配置文件包含一些基本数据:个人资料照片,昵称,年龄,位置等。当您点击个人资料时,它会使用ajax加载数据并在弹出窗口中显示用户个人资料。所以你留在同一页面上。

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

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

3 个答案:

答案 0 :(得分:2)

使用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

更新: 通过创建对象数组为多个用户编辑上面的代码

答案 1 :(得分:0)

我建议使用localStorage

  

那么什么是HTML5存储?简而言之,这是网页在客户端Web浏览器中本地存储命名键/值对的一种方式。与Cookie一样,即使您离开网站,关闭浏览器标签页,退出浏览器或有什么内容,这些数据仍然存在。与cookie不同,这些数据永远不会传输到远程Web服务器(除非您不用手动发送它)。

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

  

jStorage在Internet Explorer旧版本中使用可用的HTML5本地存储和userData行为。

答案 2 :(得分:0)

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

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