我目前已经实现了ajax来刷新我的内容,但我想添加一个延迟 - 任何人都知道如何将其添加到我拥有的代码中?
$.ajax({
url: "<?php echo site_url('apply/processpersonaldetails'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
$('#content').empty().html('<img src="../images/ajaxloader.gif" />');
$('#content').html(msg);
}
});
对不起,我的意思是在新内容加载之前的延迟,我想在显示新内容之前显示加载图像...这有意义吗?
答案 0 :(得分:1)
我不太明白你的场景延迟是什么意思,但你可以使用setTimeout函数来安排稍后执行某些回调:
window.setTimeout(function() {
alert('this will be executed 3 seconds later');
}, 3000);
答案 1 :(得分:0)
搜索谷歌 setInterval和setTimeout它将与jquery
一起执行您想要的操作答案 2 :(得分:0)
我不确定我是否完全理解您的问题,但假设ajaxloader.gif是加载图片,它将永远不会显示,因为它会立即被收到的内容替换。
ajax请求本身就是一个适当的延迟。我想从成功处理程序中移出<img
行就足以在新内容到达之前看一下图像:
// Show the loading image before firing the ajax request
$('#content').html('<img src="../images/ajaxloader.gif" />');
$.ajax({
url: "<?php echo site_url('apply/processpersonaldetails'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
// New content replaces the loading image
$('#content').html(msg);
}
});
如果在显示新内容之前仍需要额外的延迟,可以使用如下的setTimeout方法:
// Show the loading image before firing the ajax request
$('#content').html('<img src="../images/ajaxloader.gif" />');
$.ajax({
url: "<?php echo site_url('apply/processpersonaldetails'); ?>",
type: 'POST',
data: form_data,
success: function(msg) {
// Insert one second delay before showing new content (not sure why)
window.setTimeout(function() {
// New content replaces the loading image
$('#content').html(msg);
}, 1000);
}
});
考虑处理ajax错误,以确保在请求失败时图像也会隐藏。