【问题标题】:How can run JavaScript code for all users at the same time and display the same generated numbers for all users如何同时为所有用户运行 JavaScript 代码并为所有用户显示相同的生成数字
【发布时间】:2020-10-04 15:57:33
【问题描述】:

我的网站有一个大问题。

我的网站中有一个页面,可以使用 Javascript 中的 Spinning Wheel 生成随机数。

生成数字的代码:

function chooseNumbers ()
{
    const wheel = document.querySelector('.circle');

    let deg = 0;

    deg = Math.floor((Math.random() * (360 - 1) + 1));
    wheel.style.transition = 'all 10s ease-out';
    wheel.style.transform = `rotate(${deg}deg)`;

    /**
     * Circle height: 830px
     * Circle width: 830px
     * angle: 36deg
     * 
     * if deg result between this numbers
     * 
     * 0   => 36  = 1
     * 36  => 72  = 2
     * 72  => 108 = 3
     * 108 => 144 = 4
     * 144 => 180 = 5
     * 180 => 216 = 6
     * 216 => 252 = 7
     * 252 => 288 = 8
     * 288 => 324 = 9
     * 324 => 360 = 0
     * 
     * pi = c / d
     */
}

我需要“在同一时间”向我的用户显示页面如何生成数字以及纺车如何选择数字。

这意味着我需要运行相同的 Javascript 代码并向所有现有用户显示相同的结果。

如果页面为每个用户运行 JavaScript 代码 它会为每个用户显示不同的结果,因为我使用了

Math.random()

生成随机数。

所以我需要一种方法来同时向所有用户显示车轮旋转,并显示代码在 JavaScript 中生成的相同结果。

执行此方法的必要技术是什么?

【问题讨论】:

  • 这是客户端JS吗?
  • @andrbrue 看起来是这样,他正在使用document.querySelector
  • 所以,我想您需要设置一个服务器,因为您的客户需要有一种通信方式。您无法仅使用简单的客户端 JS 来解决此问题。
  • 我认为我需要服务器端

标签: javascript real-time


【解决方案1】:

您可以为此使用数据库。有免费的,您可以尝试使用。 工作原理是,使用不同的页面,在 javascript 中生成各种随机数及其显示时间,然后使用 PHP 将它们上传到数据库。那将被称为您的后端,这是用户永远看不到的部分。现在,为了让每个用户看到这些数字,您将启动旋转轮并使用 PHP 从数据库中获取数字,然后让旋转轮停在该数字上,这样每个用户的数字都相同,并且只要您不断向数据库中添加数字,轮子就会一直保持

【讨论】:

  • 这意味着首先当我需要生成数字时。我应该发送 ajax 请求以在 php 中生成数字并将此数字返回到轮子以显示它??
  • 问题是如何在php中生成相同的数字deg = Math.floor((Math.random() * (360 - 1) + 1));
  • 你可以使用 $MyRandNum = mt_rand()*(360-1)+1
  • 没问题的小伙伴!!
  • 兄弟 对不起,我想问你一个问题。我们知道 Javascript 在访问者浏览器上的用户浏览器上运行。
猜你喜欢
  • 2020-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-17
  • 2021-06-03
  • 1970-01-01
  • 1970-01-01
  • 2017-04-12
相关资源
最近更新 更多