gpt4 book ai didi

php - 使用 ajax 仅加载新数据

转载 作者:行者123 更新时间:2023-11-29 02:29:51 25 4
gpt4 key购买 nike

我只需要使用 ajax 将新数据加载到我的 div 中。目前我正在加载所有数据,因为如果我删除数据库中的一条记录,它也会从我的聊天 div 中删除它。

这是我的js代码:

var chat = {}
chat.fetchMessages = function () {
$.ajax({
url: '/ajax/client.php',
type: 'post',
data: { method: 'fetch', thread: thread},
success: function(data) {
$('.chat_window').html(data);
}
});
}

chat.throwMessage = function (message) {
if ($.trim(message).length != 0) {
$.ajax({
url: '/ajax/client.php',
type: 'post',
data: { method: 'throw', message: message, thread: thread},
success: function(data) {
chat.fetchMessages();
chat.entry.val('');
}
});
}
}

chat.entry = $('.entry');

chat.entry.bind('keydown', function(e) {
if(e.keyCode == 13) {

if($(this).val() == ''){
} else {
chat.throwMessage($(this).val());
e.preventDefault();
}

}
});

chat.interval = setInterval(chat.fetchMessages, 8000);
chat.fetchMessages();

我环顾四周,有人说如果您将时间戳传递给服务器并以这种方式加载新内容,但我似乎无法理解。如果您需要 php,请告诉我。

最佳答案

是的,所以时间戳最有意义。您需要做几件事:

  1. 在后端,您需要让 client.php 接受查询字符串中的时间戳参数。返回数据时,不是只返回所有数据,而是返回自时间戳以来的所有内容(如果给定)。否则归还所有东西。
  2. 第一次加载聊天客户端时,您应该做的第一件事是对一个新的 PHP 文件进行 Ajax 调用,该文件返回当前服务器时间戳。将其值作为数字存储在 Javascript 变量中。
  3. 在 chat.fetchMessages() 期间,将时间戳变量的值增加自上次获取以来的时间(看起来像 8000 毫秒),并将其提供给 client.php,如 url: '/ajax/client.php?timestamp=' + latestFetchTimestamp,
  4. 不是替换所有 HTML 内容,而是附加。

关于php - 使用 ajax 仅加载新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14964571/

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