Счетчик заказов в день
Подскажите пожалуйста, как реализовать простой скрипт, который с начала суток будет рандомно (напр. от 1 до 3) прибавлять цифры каждый час в строку. Например:
Сегодня сделано заказов: 1 Сегодня сделано заказов: 4 Сегодня сделано заказов: 5 Сегодня сделано заказов: 8 И т.д. каждый час меняется цифра. |
var interval = 1000*60*60; var max = 3; var min = 1; setInterval(rand, interval); function rand() { let num = Math.floor(Math.random() * (max - min)) + min; let elem = document.createElement('DIV'); document.body.appendChild(elem); elem.innerHTML += 'Сегодня сделано заказов: ' + num + '<br>'; } |
.A.R.T.,
я конечно дико извиняюсь, но просто интересно - зачем? в настоящее время даже 'блондинок' не обманешь подобным, это сработает только для пенсионеров и дошкольников, которые сегодня первый раз зашли в интернет |
Russo,
я извиняюсь, а как вывести строку в HTML странице? Или прямо напрямую скрипт вставлять (если просто вставить скрипт - ничего не отображается)? Допустим есть строка: <div id="schetchik">Сегодня сделано заказов: ...</div> |
Блондинка,
чтобы дать понять посетителям, что интернет-магазин (доставка суши) работает. Недавно открылся сайт, некоторые посетители звонят и спрашивают, работает интернет-магазин или нет. |
Цитата:
Если с сайтом все хорошо, то вложитесь в рекламу. |
Цитата:
|
Я думаю в Вашем случае можно сделать так:
<!DOCTYPE html> <html> <head> <title>shop</title> <meta charset="utf-8"> </head> <body> <div id="schetchik"></div> <script> var interval = 1000*60*60; var max = 3; var min = 1; setInterval(rand, interval); function rand() { let num = Math.floor(Math.random() * (max - min)) + min; let elem = document.createElement('DIV'); let counter = document.getElementById('schetchik'); counter.appendChild(elem); elem.innerHTML += 'Сегодня сделано заказов: ' + num + '<br>'; } </script> </body> </html> Хотя правильней вставлять код в js файл. |
Все представленные тут решения почему-то предполагают, что посетитель будет часами сидеть (и зайдёт на страницу ровно в полночь) и смотреть на этот счётчик. (который сбрасывается при обновлении страницы, и показывает информацию сомнительного характера!)
Лучше всего показывать настоящее количество заказов, которое берётся из базы данных, где хранятся эти заказы! Если это не возможно, то предпочтительней показывать среднее ожидаемое количество заказов на основе количества заказов, которые были сделаны в предыдущие дни. Конечно можно использовать линейный график вида, y = ax + b, где a и b являются некоторыми коэффициентами, характерными для вашего магазина. Но скорей всего у вас в магазине в определённое время совершается больше заказов (я могу ошибаться!), поэтому график вида y = ax + b cos(cx + d) может лучше описывать количество заказов, сделанных к конкретному времени. Пример для y = ax + b cos(cx + d) с общим кол-вом заказов 60 в день (и набором данных, которые здесь не приводятся)... <p>Сегодня сделано заказов: <span id="orders-count"></span></p> <script> (function orders() { var element = document.getElementById("orders-count"); var t = (Date.now() / 3600 / 1000) % 24; element.innerHTML = Math.round(2.42 * t - 5 * Math.cos(.25 * t - 1.7)); setTimeout(orders, 10 * 60 * 1000); })(); </script> Для вашего магазина аппроксимация, конечно же, может иметь совершенно другой вид! Коэффициенты вычисляются по методу наименьших квадратов(https://en.wikipedia.org/wiki/Least_squares) для набора точек (в помощь для нахождения коэффициентов для вашего магазина в соответствии с данными последних дней https://www.desmos.com/calculator) Такой способ отражает более-менее правдоподобное кол-во заказов. И в результате получается компактная формула, которая не занимает много места. Конечно вы можете учитывать и такие детали, как день недели или праздник. (Это легко сделать, если у вас имеются конкретные данные) Хотя такое вычисление намного лучше, чем просто какие-то случайные числа, по возможности стоит написать скрипт, чтобы была возможность показывать настоящее количество заказов! Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 12:55. |