Javascript 在JS中准备好文档上的当前页面访问者

Javascript 在JS中准备好文档上的当前页面访问者,javascript,jquery,html,Javascript,Jquery,Html,今天我在德国送货页面上找食物,因为我饿了。当我访问页面时,会显示一个弹出窗口,显示页面上的当前访问者: 所以我问自己他们是怎么做到的?因此,我尝试在一个巨大的JS文件中进行一些研究,发现如下: 这是构建此对话框的函数的一部分: getVisitorsTitle: function() { return this.getNumberOfVisitors() + " " + s("stickyNote.title") }, getNumberOfVisitors: funct

今天我在德国送货页面上找食物,因为我饿了。当我访问页面时,会显示一个弹出窗口,显示页面上的当前访问者:

所以我问自己他们是怎么做到的?因此,我尝试在一个巨大的JS文件中进行一些研究,发现如下:


这是构建此对话框的函数的一部分:

getVisitorsTitle: function() {
    return this.getNumberOfVisitors() + " " + s("stickyNote.title")
   },
   getNumberOfVisitors: function() {
    var e, t;
    return t = this.bigCityList.indexOf(this.city) > -1 ? {
     max: 8,
     min: 2
    } : {
     max: 5,
     min: 2
    }, e = Math.floor(Math.random() * (t.max - t.min + 1)) + t.min, e = this.getVisitorBoost(e)
   }
所以我不是100%确定,但我认为访客柜台不是真正的柜台。它只是在一定范围内生成的一个随机数。所以这是一个谎言


现在我在问自己,是否有一种方法可以让当前页面的访问者不使用随机数字来伪装

通常的方法很容易可视化-每当用户打开页面时,打开一个(或类似的)窗口,以便在客户端和服务器之间进行双向通信。让服务器统计该页面当前活动的Websocket连接数(来自所有客户端,如果需要,过滤掉重复的IP地址),并在该数发生变化时向客户端发送数据。然后,客户端可以在浏览器中更新相应的数字文本


尽管如此,Websocket并不是必需的—您可以通过重复的Ajax调用实现同样的效果(例如,每隔几分钟向服务器请求一次号码,服务器会用过去几分钟内发出请求的客户端数量进行响应),这只会更加混乱。

一般的方法很容易可视化——每当用户打开页面时,打开一个(或类似的东西),以便在客户端和服务器之间进行双向通信。让服务器统计该页面当前活动的Websocket连接数(来自所有客户端,如果需要,过滤掉重复的IP地址),并在该数发生变化时向客户端发送数据。然后,客户端可以在浏览器中更新相应的数字文本


不过,Websocket并不是必需的—重复Ajax调用也可以实现同样的效果(例如,每隔几分钟从服务器请求一次号码,服务器会用过去几分钟内发出请求的客户端的数量进行响应),这只会更加混乱。

这很容易用signalR实现,如果可用,则处理Websocket,如果不可用,则返回长轮询(重复ajax请求)。您的服务器需要跟踪和存储连接,但Signaler也在服务器上处理此问题,因此您可以轻松地将特定事件的更新推送到“订阅者”,例如用户已连接/已断开连接。wtf也是如此。我们不能再做
加上一条
评论了?必须使用diff-unicode字符。听起来我不能只使用jQuery。这将是一个巨大的编码,对吗?@Mr.Jo我不这么认为,我认为这样的事情可能在总共不到100行的时间内完成,对于客户端和服务器代码的组合来说,这非常简单。困难来自于必须学习websocket或ajax语法(如果您还不熟悉),以及必须弄清楚如何在后端处理它(无论使用哪种语言/框架),如果您还不熟悉的话。需要知识,但不多coding@CertainPerformance这就是重点。我从未使用过websocket和ajax的组合。尤其是在这种情况下。问题是没有一个解决方案可以教我如何做到这一点。使用signar可以很容易做到这一点,如果可用,可以处理Websocket,如果不可用,则返回到长轮询(重复的ajax请求)。您的服务器需要跟踪和存储连接,但Signaler也在服务器上处理此问题,因此您可以轻松地将特定事件的更新推送到“订阅者”,例如用户已连接/已断开连接。wtf也是如此。我们不能再做
加上一条
评论了?必须使用diff-unicode字符。听起来我不能只使用jQuery。这将是一个巨大的编码,对吗?@Mr.Jo我不这么认为,我认为这样的事情可能在总共不到100行的时间内完成,对于客户端和服务器代码的组合来说,这非常简单。困难来自于必须学习websocket或ajax语法(如果您还不熟悉),以及必须弄清楚如何在后端处理它(无论使用哪种语言/框架),如果您还不熟悉的话。需要知识,但不多coding@CertainPerformance这就是重点。我从未使用过websocket和ajax的组合。尤其是在这种情况下。问题是,没有一个解决方案可以教会我如何做到这一点。