<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?
答案 0 :(得分:0)
如果要向客户端发送“实时”数据,则需要使用Ajax long polling。您的PHP脚本将检查(也许每秒一次)数据库中的更改,然后将其发送给客户端。切记,这可能会非常浪费资源。另外,请记住,这实际上不是实时的。
理论看起来像这样:
我最近整理了一个示例,您可以看到here(不幸的是,您还无法自己更新数据...),并且可以下载并使用它here。
这样,您就可以开始了解Ajax Long轮询的工作原理。
也不要忘记“实时”是一个神话(即使您想深入了解WebRTC,您也将拥有更快的响应时间,但仍不是实时的,仅存在于客户端之间,不适用于此处) )。
您也可以使用PHP库“ Ratchet”来玩Web套接字,我本人过去几天一直在学习该库,但是它要困难一些,除非您自己是,否则可能不是您要找的东西。服务器管理员,准备全时运行PHP脚本(几乎像守护程序一样)。
答案 1 :(得分:0)
在每个keyup
事件中将数据保存到数据库中不是一个好主意。您可以在blur事件或其他事件之后将数据保存到数据库中。您需要将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']