向mysql发送实时数据?

thtygnil  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(325)
<textarea name="txtScript" id="word_count" cols="20" rows="20"></textarea>
Total word Count : <span id="display_count">0</span> words.

我想在显示计数范围内发送实时数据。

$(document).ready(function()
{
    var wordCounts = {};
    $("#word_count").keyup(function() {
        var matches = this.value.match(/\b/g);
        wordCounts[this.id] = matches ? matches.length / 2 : 0;
        var finalCount = 0;
        $.each(wordCounts, function(k, v) {
            finalCount += v;
        });
        $('#display_count').html(finalCount);
        am_cal(finalCount);
    }).keyup();
 });

默认值为“0”。当我加新词的时候就算数了。如何将span中的实时数据发送到mysql?

qgelzfjb

qgelzfjb1#

将数据保存到数据库中并不是一个好主意 keyup 事件。您可以在模糊事件或其他事件后将数据保存到数据库中。你得把 finalCount 到服务器端保存到mysql数据库中。可以使用jquery.ajax()。

$.ajax({
        url     : '/path/to/save.php',
        type    : 'POST',
        data    : 'finalCount=' + finalCount,
        success : function( data ) {
                    //alert(data);
                  }
    });

save.php 您可以访问 finalCount 如下所示并将其保存到数据库中:

$_POST['finalCount']
px9o7tmv

px9o7tmv2#

如果您想向您的客户机发送“实时”数据,您将需要使用ajax长轮询。您的php脚本将检查(可能每秒一次)数据库中的更改,然后将其发送给您的客户机。请记住,这可能会变得非常缺乏资源。另外,请记住它实际上不是实时的。
理论看起来是这样的:
客户端发送长轮询请求。
脚本每秒读取mysql数据库。
如果满足某些条件,则脚本将回显数据(可能是json编码的),后跟一个空行。
javascript检查新数据并接收新行并相应地使用数据。
我最近整理了一个例子,你可以在这里看到(不幸的是你不能自己更新数据。。。你可以在这里下载和玩它。
这样,您就可以开始了解ajax长轮询的工作原理。
另外,请记住,“实时”是一个神话(即使你想潜入webrtc,那么你会有更快的响应时间,仍然不是实时的,只存在于客户端之间,在这里是不适用的)。
您也可以使用php库“ratchet”来使用websockets,这是我自己在过去几天里一直在学习的,但是这有点困难,可能也不是您想要的,除非您自己是服务器管理员,准备全职运行php脚本(几乎像守护进程一样)。

相关问题