TP 5 AJAXチャット実現
TP 5 AJAXはチャットを実現するjqueryで書いたsetIntervalなので、2秒に1回リクエストして、資源を浪費しすぎて、使用をお勧めしません.記録のみをします.
フロントエンドhtmlコードは私は放さないで、これは自分で発挥しましょう:).ユーザid=001 isSend=0(0:001送信、1:管理者送信)status(0:未読、1:既読)はチャットウィンドウを開き、バックグラウンドでユーザーの情報を読み取る操作はユーザーid 001 isSend=0のstatusを1にし、タイマーを2秒1で問い合わせる. 管理者が情報を入力後、送信先id=001 isSend=1 status=0をクリックしてデータベース に格納.
jsコードは以下の通りです.
PHP操作は余計な説明をしないで、すべて簡単な添削検査です.
シロが1人.軽く噴き出す.個人記録のみを作成します.
フロントエンドhtmlコードは私は放さないで、これは自分で発挥しましょう:).ユーザid=001 isSend=0(0:001送信、1:管理者送信)status(0:未読、1:既読)
jsコードは以下の通りです.
let interval;
$(document).on('click','.chatDetail',function(){
let accid=$(this).attr('data-id');
let accname=$(this).attr('data-name');
$('#accountName').text(accname);
$('#accid').val(accid);
$('.overFlowMsg').hide();
// ajax
$.ajax({
url:chat_url.getChatDetail,
data:{id:accid},
type:"post",
success:function(data){
//
$('#chatBody').html(data);
$('#chatModal').modal('show');
}
});
});
$('#chatModal').on('show.bs.modal',function(){
let accid =$('#accid').val();
//
setStatus(accid);
//
getNewMsg(accid);
});
//
function getNewMsg(accid){
// setIntval,2
interval = setInterval(function () {
$.ajax({
url:chat_url.getNewMsg,
data:{accid:accid},
type:"post",
dataType:"json",
success:function (data) {
if(data.status==1){
let msg=data.info;
let str = '';
// div
for(let i=0;i''+msg[i].createTime+'';
str += '';
str += msg[i].message;
str += '';
}
$('.overFlowMsg').find('div:last').after(str);
}
}
});
},2000);
}
//
function setStatus(accid){
$.ajax({
url:chat_url.setStatus,
data:{accid:accid},
type:"post",
dataType:"json",
success:function (data) {
if(data.status==1){
}
}
});
}
// clearInterval
$('#chatModal').on('hide.bs.modal',function(){
clearInterval(interval);
});
$(document).on('click','#sendMsg2Account',function(){
let content = $('#sendMsgToAccount').val();
if(content==''||content==null){
layer_danger(' ');
return false;
}
let accid= $('#accid').val();
// console.log(content);
$('#sendMsgToAccount').val('');
$.ajax({
url:chat_url.sendMsg2Account,
data:{
accid:accid,
message:content,
},
type:"post",
dataType:"json",
success:function(data){
if(data.status==1){
let str =''+data.info.createTime+'';
str += '';
str += data.info.message;
str += '';
if($('.overFlowMsg').length>0){
$('.overFlowMsg').find('div:last').after(str);
}else{
$('.overFlowMsg').html(str);
}
}else{
layer_danger(data.info);
}
}
});
});
//
$(document).on('keypress','#sendMsgToAccount',function(){
let content = $('#sendMsgToAccount').val();
if(event.keyCode==13){
if(content!=null||content!=''){
$('#sendMsg2Account').trigger('click');
event.preventDefault();
}
}
});
PHP操作は余計な説明をしないで、すべて簡単な添削検査です.
シロが1人.軽く噴き出す.個人記録のみを作成します.