没有像facebook这样的两个人之间的页面刷新通信,如何在我的下面的脚本中添加setTimeout函数,在我的代码下面我评论只有从数据库中提取的聊天消息
聊天窗口
<div class="row msg_container base_sent">
<div class="col-md-1">
<?php if (empty($roww->customer_image[0]) || empty($roww->supplier_image)) { ?>
<img src="<?php echo base_url(); ?>images/default.jpg" class="img-circle" width="30px" height="30px"/>
<?php } else { ?>
<img src="<?php echo 'data:image;base64,' . $roww->supplier_image; ?>" class="img-circle" width="30px" height="30px"/>
<?php } ?>
</div>
<div class="col-md-11 col-xs-11">
<div class="messages msg_sent">
<p>
<!--In this p tag i want to set a set timeout function how to call in ajax success without page reload-->
<a href="#" data-toggle="tooltip" data-placement="right" title="12am"><?php echo $row->message; ?> </a>
</p>
</div>
</div>
</div>
脚本
<script>
$(document).ready(function () {
$('#data_form').on('submit', function (e) {
var form_data = $(this).serialize();
$.ajax({
type: "POST",
url: '<?php echo base_url(); ?>index.php/Profile_cntrl/buyer_communication',
data: form_data,
success: function (data)
{
scrollDown();
var message = $("#messagee").val();
$('#chat_log').append('<div class="row msg_container base_receive"><div class="col-md-12 col-xs-12"><div class="messages msg_receive"><p><a>' + message + '</a></p></div></div></div>');
$('#messagee').val('');
},
error: function ()
{
alert('failed');
}
});
e.preventDefault();
});
scrollDown();
function scrollDown() {
$('.msg_container_base').animate({scrollTop: $('.msg_container_base').prop("scrollHeight")}, 200);
}
});
</script>
答案 0 :(得分:0)
setTimeout
的语法如下:
var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);
,其中
timeoutID
是一个数字ID,可以与之结合使用
clearTimeout()取消定时器。func
是要执行的功能。code
(在备用语法中)是要执行的代码字符串。delay
是应该延迟函数调用的毫秒数。如果省略,则默认为0. 实施例:
setTimeout
接受对函数的引用作为第一个参数。
这可以是函数的名称:
function explode(){
alert("Boom!");
}
setTimeout(explode, 2000);
引用函数的变量:
var explode = function(){
alert("Boom!");
};
setTimeout(explode, 2000);
或匿名函数:
setTimeout(function(){
alert("Boom!");
}, 2000);
另外,作为第二个选项,您也可以使用
delay()
。
以下是帮助链接:delay 例如:
$el.delay(5000).fadeOut('fast');