javascript - 添加新内容时设置间隔

标签 javascript php jquery

可能是一个太宽泛的问题,但我还是会问..

因此,我用自己的 php 知识制作了一个聊天应用程序,它也能正常工作,但是由于我设置了每隔 10 秒显示一次消息的时间间隔,它会占用大量带宽。所以我想知道...

  • 有没有办法在我的数据库中添加新消息时设置时间间隔?
  • 或者也许你们中的一些人知道我应该通过其他方式解决这个问题?

这是我到目前为止所想到的

<?php 
include "connect.php";
$query = "SELECT * FROM messages ORDER BY id ASC";
$result = $con->query($query);
if($result){

while($row = $result->fetch_object()) 
{   
    echo '<div id = "hehe">';
    echo '<div class = "userpic"><img src = "'.$row->userpic.'" class = "userpic"></div>';
    echo "<ul id = 'rutor'>";
    if (isset($row->displayname) && !empty($row->displayname)) {
        echo '<li class = "userlada">'.$row->displayname. "</li>";
    }
    else{
        echo '<li class = "userlada">'.$row->username. "</li>";
    }
    echo '<li class = "usertext">'.$row->message. "</li>";
    echo "</ul>";
    echo "</div>";
    }       
}
?>

我查看消息的间隔函数

setInterval(function() {
$( ".chatMessages" ).load( "getMeddelanden.php" );
}, 10000); 

最佳答案

Is there a way to setInterval whenever new messages is added on my database?

要在新消息添加到数据库(服务器)时通知客户端,您需要使用 WebSocket将数据推送到客户端。

setInterval 的作用称为轮询,它重复调用服务器以查看是否已添加新消息,如果是,则检索它。

Or perhaps any other way some of you know that i should approach this problem?

据我所知,使用 WebSocket 是最好的方法。您还可以使用一些技术来简化您的工作,例如 socket.io , PubNub & MQTT .

关于javascript - 添加新内容时设置间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42414928/

相关文章:

javascript - 是否有内置方法可以将两个对象的属性合并到一个对象中?

javascript - Nest JS GraphQL “Cannot return null for non-nullable”

PHP 在登录/注销时重新生成 session ID 不起作用

php - strcmp 等效于 PHP 中的整数 (strcmp)

javascript - 检查是否使用 jQuery 加载了图像(没有错误)

javascript - 如果变量发生变化则触发事件

javascript - 渲染 : div children no styling 中的 React 开关

javascript - 与其交互后关闭 C3 工具提示

php - 使用jquery动态加载php

javascript - 使用 jQuery 添加无限循环功能并重置一系列动画