如何添加setTimeout函数?

时间:2017-07-14 10:16:59

标签: jquery ajax codeigniter

没有像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>

1 个答案:

答案 0 :(得分:0)

setTimeout的语法如下:

var timeoutID = window.setTimeout(func, [delay, param1, param2, ...]);
var timeoutID = window.setTimeout(code, [delay]);

,其中

  1. timeoutID是一个数字ID,可以与之结合使用 clearTimeout()取消定时器。
  2. func是要执行的功能。
  3. code(在备用语法中)是要执行的代码字符串。
  4. delay是应该延迟函数调用的毫秒数。如果省略,则默认为0.
  5. 实施例: 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');