2012-09-12 93 views
1

我有哪里配置文件显示了一些基本的数据页用户:个人资料照片,昵称,年龄,位置等。当你点击配置文件,它使用Ajax加载数据并显示在用户个人资料弹出。所以你留在同一页面上。存储数据

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

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

+1

你有没有考虑过使用的memcache ??? – Baba

+0

但即使使用memcache,也需要ajax调用。我想看看,当你点击配置文件时,它会立即显示配置文件,例如桌面应用程序。 – user1324762

+0

@ user1324762,但随后的调用会快很多 – epoch

回答

2

使用JavaScript对象

得到PHP中的用户信息,并将它们传递给函数在JS在HTML

<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]; 
}} 
这些值

,然后你可以通过简单地访问它们调用对象 如果whant名字就叫userObject[user_id].name

更新: 为多个用户通过创建一个对象数组,我编辑上述

+0

这就是我的想法。我不确定简单数组是否是个好主意。 – user1324762

+0

@mplungjan他可以通过它,因为他想我通过它作为一个数组 他可以通过作为JSON,然后解码它的功能 – AboQutiesh

+0

@ user1324762其最快的方法或只是去与mplungjan和使用JSON而不是阵列 即时通讯在这里给你的方向不是确切的解决方案 – AboQutiesh

0

的代码,我会建议使用localStorage

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

虽然这是一个新的功能,并非所有的旧的浏览器支持,可以使用图书馆像jStorage,以减轻这些案件。

jStorage利用HTML5本地存储,其中Internet Explorer旧版本中可用和userData行为可用。

0

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

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