嗨,我需要一些帮助。我目前正在学习 Ajax 和 Json,所以我没有太多经验。
我已按照本教程进行操作,以便在不刷新页面的情况下获取数据,但我对此有些担心。
该脚本运行良好,我发现的唯一问题是,如果我点击刷新,再次加载内容需要很长时间(大约 5-10 秒)。在 Firebug 中,我可以在控制台中看到它不断地绑定,因为它一直在发送请求。这是代码HTML
<div class="ajax_results">
<ul id="results"></ul>
</div>
PHP 脚本
$query = "SELECT `img_id`, `image_name`, `title` FROM `images` ORDER BY `img_id` DESC LIMIT 5 ";
$run = mysqli_query($connection, $query) or die(mysqli_error($connection));
$json = array();
while ($row = mysqli_fetch_array($run, MYSQLI_ASSOC)) {
array_push($json, array('image_name' => $row['image_name'],
'title' => $row['title']));
}
echo json_encode(array("json" => $json));
和 JS
$(document).ready(function() {
refresh();
});
function refresh() {
setTimeout(function() {
update_content();
refresh();
}, 200);
}
function update_content() {
$.getJSON("fetch_data.php", function(data) {
$("ul#results").empty();
$.each(data.json, function() {
$("ul#results").append("<li><img src=\"img/uploads/"+this['image_name']+"\" /><br />"+this['title']+"</li>");
});
});
}
这是有问题吗??我可以以某种方式改进代码吗?任何帮助,将不胜感激
提供一些额外的反馈。如果将 $.getJSON 直接放在 $(document).ready(function() 中,则内容加载速度会更快,但是如果发生任何更新,例如标题中的任何更新都不会在不刷新页面的情况下显示。我真正想要实现的是加载内容,如果有任何更改发生在不刷新页面的情况下显示它们。