簡體   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