我有一个php文件,可以从目录中检索最新的100个图像。我有一个自动重新加载php文件的脚本,以便我们可以使用javascript数据。
但问题是,我们没有收到有关网站加载的信息,但仅在重新加载php文件2次之后。我们需要有关其他功能的网站负载数据。
任何人都可以帮助我吗?
谢谢!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="../js/jquery.js"></script>
<script>
var array = [];
$(document).ready(function () {
window.setInterval(function () {
$(function () {
$.ajax({
type: 'POST',
url: 'update.php',
cache: false,
success: function (result) {
array = result;
},
dataType: "json"
});
});
var index;
var text = "<ul>";
for (index = 0; index < array.length; index++) {
text += "<li>" + array[index] + "</li>";
}
text += "</ul>";
document.getElementById("demo").innerHTML = text;
}, 5000);
});
</script>
</head>
<body>
<p id="demo"></p>
</body>
</html>
PHP文件数组导出:
echo json_encode($files);
答案 0 :(得分:1)
使用回调函数,如下面的代码段所示。 只有在收到响应后才会执行ajax请求下面的代码。
这里的问题是因为ajax请求是异步的。这在后台运行,并且首先运行ajax请求后的代码。
$.ajax({
type: 'POST',
url: 'update.php',
cache: false,
success: function(result) {
callbackFunction(result)
},
dataType:"json"
});
function callbackFunction(array) {
var index;
var text = "<ul>";
for (index = 0; index < array.length; index++) {
text += "<li>" + array[index] + "</li>";
}
text += "</ul>";
document.getElementById("demo").innerHTML = text;
}
&#13;
答案 1 :(得分:1)
var array = [];
function displayArray(array) {
var text = "<ul>";
for (var index = 0; index < array.length; index++)
text += "<li>" + array[index] + "</li>";
text += "</ul>";
$("#demo").html(text);
}
$(document).ready(function() {
array = <? php echo json_encode($files); ?> ;
displayArray(array);
window.setInterval(function() {
$.ajax({
type: 'POST',
url: 'update.php',
cache: false,
success: function(x){
array = x;
displayArray(array);
},
dataType: "json"
});
}, 5000);
});
编辑:我为你制作了全局数组,我认为这是你误以为“加载”。