Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用套接字记录按钮按下_Javascript_Jquery_Node.js_Websocket_Socket.io - Fatal编程技术网

Javascript 使用套接字记录按钮按下

Javascript 使用套接字记录按钮按下,javascript,jquery,node.js,websocket,socket.io,Javascript,Jquery,Node.js,Websocket,Socket.io,我对web套接字非常陌生。我希望能够创建一个简单的web应用程序,记录按钮被单击的次数: <button>click</button> <div id="counter"></div> <script> $(function() { $('button').click(function() { $('div#counter').html(function(i, val) { return

我对web套接字非常陌生。我希望能够创建一个简单的web应用程序,记录按钮被单击的次数:

<button>click</button>
<div id="counter"></div>

<script>
$(function() {
    $('button').click(function() {
        $('div#counter').html(function(i, val) {
            return val*1 + 1
        });
    });
});
</script>
点击
$(函数(){
$(“按钮”)。单击(函数(){
$('div#counter').html(函数(i,val){
返回值*1+1
});
});
});
我知道我可以使用JavaScript/jQuery用一个值更新div,但是如何通过明文/数据库存储这个值并显示按钮被点击次数的实时输出呢


例如,如果
browser A
打开,当前计数为
5
,而
browser B
打开并单击按钮,计数将在两种浏览器上更新为
6

您需要使用服务器端语言,纯js不行,在php上我可以

<button onclick="myFunction()">click</button>

<script>
function myFunction()
{
   <?php
        $conection="connection values";
        $sql="update some_table set somevalue=somevalue+1";
        //execute query

    ?>
}
</script>
点击
函数myFunction()
{
}
或者,如果您不想将php代码和数据库连接放在同一个文件上,您可以这样调用它

<script>
   function myFunction(){
       $.get("somepage.php");
       return false;

   }
</script>

函数myFunction(){
$.get(“somepage.php”);
返回false;
}

您需要一些WebSocket服务器后端和持久存储。然后,您需要一个通知后端单击的机制,以及一个通知所有连接的浏览器更新的机制

对于通知,这非常适合发布/订阅(PubSub)

请看一个示例,了解如何在浏览器中使用WebSocket和AutobahnJ,在服务器上使用AutobahnPython。(由于高速公路项目正在进行重大变更,更新正在进行中,因此不能保证您能够按照目前所述直接执行演示,但它会让您了解基本模式。)

根据您使用的后端语言的类型,您可能需要查看WAMP的版本,即上述库用于PubSub模式的协议。有很多,其中一个可能适合你的需要

(完全披露:我为Tavendo工作,他是高速公路WebSocket项目的项目维护人员。)


PS:这正是您想要做的,包括在Oracle数据库中持久化后端数据。但是,在下一版本Crossbar.io的工作继续进行时,这一功能目前肯定无法使用。

我希望使用socket.io/node.js。使用PHP,您必须连接到数据库才能调用数据,这在所有当前打开的没有web套接字的浏览器中是不一致的。