AJAX页面加载表行|苹果浏览器

时间:2012-10-05 13:31:47

标签: php javascript ajax safari

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

当页面加载时,我使用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中。

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

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

2 个答案:

答案 0 :(得分:0)

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

例如:

JSON.stringify(array)

然后用PHP解码数组

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

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

参考:Pass Javascript Array -> PHP

答案 1 :(得分:0)

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

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

谢谢