True or better Random numbers with Javascript

前端 未结 8 696
花落未央
花落未央 2020-11-28 08:41

I have all kinds of resources that rely on javascript random numbers. However, I\'ve been seeing a lot of problems where random isn\'t so random because of the way I\'m gene

8条回答
  •  借酒劲吻你
    2020-11-28 09:19

    you can generate a pool of random numbers just by requesting some data asynchronously because performance.now() gives you time precision up to microseconds. Then use the response time as a salt in a randomising algorithm,

    var randomNumbers = [];
    for(var i = 0; i < 10; i++) {
      setTimeout(function () {
        var timeStart = performance.now();
        xhttp = new XMLHttpRequest();
        xhttp.open('GET', 'https://cdn.polyfill.io/v2/polyfill.min.js?rand=' + Math.random(), true);
        xhttp.onload = function () {
          var timeEnd = performance.now() - timeStart;
          var rNumber = parseInt(timeEnd.toString().replace('.', ''));
          randomNumbers.push(rNumber)
        };
        xhttp.send();
      }, i * 10);
    }
    

    There are many factors that will affect this time:

    • browser speed
    • route one way
    • server response time
    • route back

    It's not good to generate millions of numbers this way but a few. Maybe concatenate a few results to get a good, long random number.

提交回复
热议问题