0

我正在开发一个小网络应用程序,用于简单地处理、存储和交换不同的数据。

当页面加载时,我使用 PHP 创建了一个 javascript 数组,并使用 window.unload 函数遍历这个数组。

数组的每个元素都包含一个联系人 ID,循环从另一个 PHP 脚本获取显示数据(例如姓名、地址)的相应行,并将其附加到包装器 div:

for (var i = 0; i < contIDs.length; i++) {
    var row = document.createElement("div");
    row.className = "rowDiv";
    row.innerHTML = HTTPRequest("getRow.php?id=" + contIDs[i]);

    document.getElementById("rowsWrapper").appendChild(row);
}

在 FireFox 中,页面加载并按预期逐行弹出。只有 Safari 会加载页面,然后加载一段时间,然后所有行都会同时弹出到 DOM 中。

谁能想象我做错了什么,或者任何人都可以给我提示如何实现那种“加载动画”?

谢谢你,亲切的问候——朱利安

4

2 回答 2

0

据我了解,您使用的 for 循环将在每次迭代时调用一个单独的 HTTPRequest ......在某些情况下,这可能会导致我假设的挂起时间(如果我错了,请纠正我,我仍然是学生:P)。如果您正在调用 PHP 文件,为什么不使用 AJAX 调用来使用 JSON 将整个数组发送到 PHP

前任:

JSON.stringify(array)

然后在 PHP 中解码数组

$array = json_decode($_POST['jsondata']); 

然后,您可以一次发回整个列表......除非您希望在虚构的“跳过”时间创建它,否则您始终可以使用间隔。

参考:传递 Javascript 数组 -> PHP

于 2012-10-05T13:41:36.893 回答
0

实际上这只是我的 HTTPRequest 函数的问题。我可以通过添加一个新参数,一个回调函数来解决这个问题。

因此,当状态码为 200 且就绪状态为 4 时,我将在我的 HTTPRequest 中调用回调。

不过谢谢

于 2013-01-02T12:21:01.253 回答