Guest User

Untitled

a guest
Aug 10th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. - index.html
  2.  
  3. <!DOCTYPE html>
  4. <html lang="en">
  5. <head>
  6. <meta charset="UTF-8">
  7. <title>Title</title>
  8. <script src="script.js"></script>
  9. </head>
  10. <body>
  11. <div>
  12. <p>
  13. Від:
  14. <input type="number" value="1" min="1" id="min" />
  15. До:
  16. <input type="number" value="100" min='2' id="max" />
  17. </p>
  18. <p>
  19. <button id="searchButton" onclick="searchNums()">Search</button>
  20. </p>
  21. <div>
  22. <div id="status"></div>
  23. <div id="result"></div>
  24. </div>
  25. </div>
  26. </body>
  27. </html>
  28.  
  29. - script.js
  30.  
  31. function searchNums() {
  32. let statusDisplay = document.getElementById("status");
  33. let searchButton = document.getElementById("searchButton");
  34. searchButton.disabled = true;
  35.  
  36. let min = document.getElementById('min').value;
  37. let max = document.getElementById('max').value;
  38.  
  39. let worker = new Worker("NumWorker.js");
  40.  
  41. statusDisplay.innerHTML = 'Searching...';
  42.  
  43. worker.onmessage = receivedWorkerMessage;
  44.  
  45. worker.postMessage(
  46. { from: min,
  47. to: max
  48. }
  49. );
  50. }
  51.  
  52. - NumWorker.js
  53.  
  54. function findNums(min, max) {
  55. let list = [];
  56. for (let i=min; i<=max; i++) {
  57. if (i>1) list.push(i);
  58. }
  59.  
  60. let maxDiv = Math.round(Math.sqrt(max));
  61. let nums = [];
  62.  
  63. for (let i=0; i<list.length; i++) {
  64. let failed = false;
  65. for (let j=2; j<=maxDiv; j++) {
  66. if ((list[i] != j) && (list[i] % j == 0)) {
  67. failed = true;
  68. } else if ((j==maxDiv) && (failed == false)) {
  69. nums.push(list[i]);
  70. }
  71. }
  72. }
  73.  
  74. return nums;
  75. }
  76.  
  77. onmessage = function(event) {
  78. let nums = findNums(event.data.from, event.data.to);
  79.  
  80. postMessage(nums);
  81. };
  82.  
  83. function receivedWorkerMessage(event) {
  84. let primes = event.data;
  85.  
  86. let primeList = "";
  87. for (let i=0; i<primes.length; i++) {
  88. primeList += primes[i];
  89. if (i !== primes.length-1) primeList += ", ";
  90. }
  91.  
  92. let primeContainer = document.getElementById("result");
  93. primeContainer.innerHTML = primeList;
  94.  
  95. let statusDisplay = document.getElementById("status");
  96.  
  97. let searchButton = document.getElementById("searchButton");
  98.  
  99. if (primeList.length == 0) {
  100. statusDisplay.innerHTML = "Error!";
  101. }
  102. else {
  103. statusDisplay.innerHTML = "Done!";
  104. }
  105.  
  106. searchButton.disabled = false;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment