gpt4 book ai didi

javascript - 使用 PHP、Ajax 和 Javascript/jQuery 进行推送?

转载 作者:搜寻专家 更新时间:2023-10-31 21:07:15 25 4
gpt4 key购买 nike

我有一个聊天网络应用程序作为客户项目的一部分。

为了存储数据,每一行都记录在一个 .txt 文件中,并且每 1000 毫秒调用一个使用 Ajax 检索数据的 Javascript/jQuery 函数。

为了防止每秒调用该函数,有没有办法让页面收到新数据并仅在存在新数据时调用该函数

这是我当前的功能:

setInterval (loadLog, 1000);

function loadLog(){
var chatCode = $('input#chatCode').val();
var oldscrollHeight = $("#chatContent").innerHeight();
var oldNum = $('#chatContent>div').length;

$.ajax({
url: "sessions/chats/log_"+chatCode+".html",
cache: false,
success: function(html){
$('#chatContent').html(makePretty(html));
}

//Auto-scroll
var newscrollHeight = $("#chatContent").innerHeight(); //Scroll height after the request
if(newscrollHeight > oldscrollHeight){
$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal');
}
}
})
}

并发送数据:

$('form#chatSubmit').submit(function(e){
var chatCode = $('input#chatName').val();
$('#chatContent').append('<span id="sending">Sending...</span>');
var newscrollHeight = $("#chatContent").innerHeight();
$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal');

var clientmsg = $("#usermsg").val();
var chatName = "<?php echo $_SESSION['code']; ?>";
var chatData = [clientmsg,chatName,chatCode];
var jsonChatData = JSON.stringify(chatData);
$.post("inc/chatpost.php", { text: clientmsg, name: chatName, code: chatCode })
.done(function(data){
//console.log(data);
});
$("#usermsg").val('');
return false;
e.preventDefault();
});

最佳答案

有一种方法,但这需要您重写应用程序。有一个名为 Websockets 的协议(protocol)(参见 123)。如果您使用的是像 Node.js 这样的 Javascript 库,他们会支持这一点。

您需要的是一个 Websocket 服务器(实际推送的东西)。有用于 PHP 的 Websocket 服务器(参见 123)。和 Websocket 客户端(接收“推送”并处理它的 Javascript)。请查看我包含的链接以进行进一步研究。

关于javascript - 使用 PHP、Ajax 和 Javascript/jQuery 进行推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30458253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com