Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ajax聊天(加载消息)重复多次_Javascript_Php_Jquery_Ajax_Laravel - Fatal编程技术网

Javascript Ajax聊天(加载消息)重复多次

Javascript Ajax聊天(加载消息)重复多次,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我使用(Ajax、jquery、PHP、mysql)设计了一个聊天室 但是当有人向另一个人发送消息时,消息会重复4-5次 我正在使用此代码(jquery) $(文档).ready(函数(){ var interval=setInterval(函数(){ $.ajax({ url:'GetChating/182/212', 成功:功能(数据){ $(“#消息”)。前置(数据); } }); },1000);//每1秒消息框刷新一次以加载新消息 }); //php代码laravel publi

我使用(Ajax、jquery、PHP、mysql)设计了一个聊天室

但是当有人向另一个人发送消息时,消息会重复4-5次

我正在使用此代码(jquery)


$(文档).ready(函数(){
var interval=setInterval(函数(){
$.ajax({
url:'GetChating/182/212',
成功:功能(数据){
$(“#消息”)。前置(数据);
} 
});
},1000);//每1秒消息框刷新一次以加载新消息
});
//php代码laravel

public function getChatting($from_id , $to_id){
    $ListChat = DB::table('cht_messages')
                ->where('user_from_id',$to_id)
                ->where('user_to_id',Auth::user()->id_user)
                ->where('readit_message',0)

                ->join('main_users','main_users.id_user','=','cht_messages.user_from_id')
                ->select('cht_messages.content_message','cht_messages.id_message' , 'main_users.display_name_user')
                ->orderby('cht_messages.created_at')
                ->get();

            DB::table('cht_messages')
            ->where('user_from_id',$to_id)
            ->where('user_to_id',Auth::user()->id_user)
            ->update(array('readit_message'=>1));
    $messages = '';

    if(Count($ListChat) > 0):
        foreach($ListChat as $message) {

            $messages .= '<span id="cht_auther" style="color:red;">'.$message->display_name_user.'</span>
                <span id="cht_date">01-01-2014</span>
                <span id="cht_spr"> : </span>
                <span id="cht_cnt">'.$message->content_message.'</span>
                <br clear="both"/>

                ';
        }
    endif;
    return $messages;

}
公共函数getchating($from_id$to_id){
$ListChat=DB::table('cht_messages')
->其中('user\u from\u id',$to\u id)
->其中('user\u to\u id',Auth::user()->id\u user)
->其中('readit_message',0)
->join('main_users'、'main_users.id_user'、'='、'cht_messages.user_from_id')
->选择('cht_messages.content_messages'、'cht_messages.id_messages'、'main_users.display_name_user')
->orderby('cht_messages.created_at')
->get();
DB::table('cht_messages')
->其中('user\u from\u id',$to\u id)
->其中('user\u to\u id',Auth::user()->id\u user)
->更新(数组('readit_message'=>1));
$messages='';
如果(计数($ListChat)>0:
foreach($ListChat作为$message){
$messages.=''.$message->display\u name\u user
01-01-2014
: 
“.$message->content\u message”

'; } endif; 返回$messages; }
但它会重复一条消息超过6或7次,php代码会将最后一条未读的消息

我很抱歉我的英语不好


谢谢你,当我创建聊天时,我使用PHP将JSON数组和所有正常信息以及unix时间戳传递回我的Javascript。当我在数组中循环时,我检查时间戳。加载页面时,我有一个名为
lastMessage
的变量,每次循环消息时,我都会检查消息时间戳是否为
>lastMessage
,如果不是,则不向用户显示,然后用该消息的时间戳更新
>lastMessage
。如果您遇到用户在同一秒发布消息的问题,请使用
microtime()
而不是
time()
作为时间戳


也共享php(getchating)页面&在
success
函数的开头添加所需的HTMLAdd
console.log(data)
,以验证php没有返回重复消息。或者在开发工具中检查网络。至少应该检查消息是否已加载到聊天中。请展示你的php代码。
public function getChatting($from_id , $to_id){
    $ListChat = DB::table('cht_messages')
                ->where('user_from_id',$to_id)
                ->where('user_to_id',Auth::user()->id_user)
                ->where('readit_message',0)

                ->join('main_users','main_users.id_user','=','cht_messages.user_from_id')
                ->select('cht_messages.content_message','cht_messages.id_message' , 'main_users.display_name_user')
                ->orderby('cht_messages.created_at')
                ->get();

            DB::table('cht_messages')
            ->where('user_from_id',$to_id)
            ->where('user_to_id',Auth::user()->id_user)
            ->update(array('readit_message'=>1));
    $messages = '';

    if(Count($ListChat) > 0):
        foreach($ListChat as $message) {

            $messages .= '<span id="cht_auther" style="color:red;">'.$message->display_name_user.'</span>
                <span id="cht_date">01-01-2014</span>
                <span id="cht_spr"> : </span>
                <span id="cht_cnt">'.$message->content_message.'</span>
                <br clear="both"/>

                ';
        }
    endif;
    return $messages;

}