1

我有页面用户,其中显示了一些基本数据:个人资料照片、昵称、年龄、位置等。当您单击个人资料时,它会使用 ajax 加载数据并在弹出窗口中显示用户个人资料。因此,您保持在同一页面上。

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

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

4

3 回答 3

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

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

于 2012-09-12T13:22:49.467 回答
0

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

var users = <?php echo json_encode($users); ?>;
于 2012-09-12T13:40:13.100 回答
0

我建议使用localStorage

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

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

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

于 2012-09-12T13:34:40.547 回答