繁体   English   中英

发送实时数据到MySQL?

[英]Sending realtime data to mysql?

<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”。 当我添加新单词时,它很重要。 如何将跨度的实时数据发送到MySQL?

如果要向客户端发送“实时”数据,则需要使用Ajax长轮询 您的PHP脚本将检查(也许每秒一次)数据库中的更改,然后将其发送给客户端。 切记,这可能会非常浪费资源。 另外,请记住,这实际上不是实时的。

该理论看起来像这样:

  • 客户端发送长轮询请求。
  • 脚本每秒读取一次MySQL数据库。
  • 如果满足某些条件,脚本将回显数据(可能是JSON编码),后跟空白行。
  • Javascript检查新数据并接收新行并相应地使用数据。

我最近整理了一个示例,您可以在这里看到(不幸的是,您还不能自己更新数据...),您可以在此处下载并使用它。

这样,您就可以开始了解Ajax Long轮询是如何工作的。

还要记住,“实时”是一个神话(即使您想深入了解WebRTC,您也将获得更快的响应时间,仍然不是实时的,并且仅存在于客户端之间,不适用于此处)。

您也可以使用PHP库“ Ratchet”来玩Web套接字,我本人过去几天一直在学习该库,但是要困难一些,除非您自己是服务器管理员,否则可能不是您想要的东西,准备全时运行PHP脚本(几乎就像守护程序一样)。

在每次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']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM