gpt4 book ai didi

php - 定期刷新div以检查表中是否有新条目

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

我用 PHP/jQuery/MySQL 创建了一个相对简单的“想法板”。

在页面加载时,div #chat 会提取数据库中的当前条目。

<div id="chat">
<?php

$sql = "SELECT * from idea ORDER BY id DESC;";
$result = $pdo->query($sql);

if($result->rowCount() > 0 && !empty($result))
{
foreach ($result as $row)
{
$title = $row['title'];
$idea = $row['idea'];

echo '<span class="idea"><strong>' . $row['title'] . "</strong>&nbsp;-&nbsp;" . $row['idea'] . '&nbsp;<a class="delete" href="">[Delete]</a></span>';
}
}
?>
</div>

但是我希望使用以下方法定期刷新它:

<body onload="setInterval('chat.update()', 1000)">

下面的示例详细说明了如何使用文本文件来完成此操作,我将如何通过查询数据库来完成此操作(该示例位于 http://css-tricks.com/jquery-php-chat/ )?

//Updates the chat
function updateChat() {
if(!instanse){
instanse = true;
$.ajax({
type: "POST",
url: "process.php",
data: {'function': 'update','state': state,'file': file},
dataType: "json",
success: function(data) {
if(data.text){
for (var i = 0; i < data.text.length; i++) {
$('#chat-area').append($("

"+ data.text[i] +"

"));
}
}
document.getElementById('chat-area').scrollTop = document.getElementById('chat-area').scrollHeight;
instanse = false;
state = data.state;
}
});
}
else {
setTimeout(updateChat, 1500);
}
}

我预计某些行也会被删除,因此除了附加条目之外,我还希望删除一些行。

它应该模拟实时对话。

最佳答案

您可以使用简单的long polling更新聊天的技术。

例如:

//Updates the chat
function updateChat() {
if(! instance){
instance = true;
$.ajax({
type: "POST",
url: "process.php",
data: {function: 'update', state: state, file: file},
dataType: "json",
success: function(data) {
if(data.text){
for (var i = 0; i < data.text.length; i++) {
$('#chat-area').append($("

"+ data.text[i] +"

"));
}
}
document.getElementById('chat-area').scrollTop = document.getElementById('chat-area').scrollHeight;
instance = false;
state = data.state;
},
complete: function(){
setTimeout(
updateChat, /* Request next message */
10000 /* ..after 10 seconds */
);
},
error: function(XMLHttpRequest, textStatus, errorThrown){
//display you error message
},
timeout: 10000 //Timeout is necessary to prevent chaining of unsuccessful ajax request
});
}
}

关于php - 定期刷新div以检查表中是否有新条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17908981/

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