slavegirl

slavegirl
Рейтинг
401
Регистрация
25.06.2012
Должность
Разбойница
О, Slavegirl, прекрасное созданье. Хмельной сосуд ума и обаянья. Невинный взгляд, порочная душа… В любви — рабыня, в жизни — Госпожа!
Dreik_spb:
Постоянный клиент из экзотичной страны...,после рефунда с того же форума через 3 дня снова покупает примак...,-так что что-то с чем-то в этом случае не срастается...

Выходит, так можно постоянно иметь "вечный" премиум на обменник, не платя при этом ни цента! Крайне хитрый способ...

Дикий пионер, добавила сдвиг по блокам, привязанный ко времени модификации скрипта и который не выходит за границы общего диапазона. Синхронизация по времени обеспечивается использованием new Date().getTime(), в независимости от часового пояса у всех пользователей время - одинаковое (нет необходимости использовать серверное время).

rocky198430:
а какую категорию выбирать?

rocky198430, сюда нужно писать:

Решение оказалось достаточно простым, но мой 140-й IQ напрочь отказался его выдавать раньше 2-дневного срока. Наверное, нужно заново пересдать тест...


var start_time = 1430271008102;
var init_user_id = 2000000;

var users_max = 3000000;
var users_min = 1000000;
var users_block_size = 100;
var users_block_period = 300000;

var users_block_count = Math.floor((users_max - users_min) / users_block_size);
var users_block_offset = Math.ceil((users_max - init_user_id) / users_block_size);

user_id = users_max - (Math.floor((new Date().getTime() - start_time) / users_block_period) % users_block_count + users_block_offset) % users_block_count * users_block_size - Math.floor(Math.random() * users_block_size);

Всем большое спасибо за подсказки!

SL.ME:
Всем разные или всем одинаковые?

Всем пользователям, которые находятся онлайн - один случайный аватар из одного и того же определенного блока, одинакового для всех (в определенный момент времени).

SL.ME:
И как без фиксации записи на сервере или куках продолжать всем показ когда пользователь ушел, пришел, тем более если у многих время может быть разное?
как их синхронизировать без серверной части, только на JS?

Для наглядности примера я указала время, которое определяется с помощью JavaScript. В действительности текущее время будет определяться сервером, для 100% синхронизации.

Еще раз приведу код программы:


start_time = 1430226525462; // текущее время запуска скрипта (определяется вручную перед самим запуском)
resume_user_id = 2000000; // с этого пользователя мы возобновляем процесс

users_max = 3000000;
users_min = 1000000;
users_block_size = 100;
users_block_period = 300000; // указано в миллисекундах

user_id = users_max - Math.floor(Date.now() / users_block_period) % Math.floor((users_max - users_min) / users_block_size) * users_block_size - Math.floor(Math.random() * users_block_size);

Вопрос: как привязать к формуле параметры start_time и resume_user_id, чтобы после запуска скрипта отсчет начинался с 2-миллионного пользователя (вниз) и далее по кругу в пределах диапазона [от 3 млн ... до 1 млн]?

axel11feb, к сожалению, варианты с записью/чтением текущих переменных в БД или куки не подходят. Нужно именно доработать формулу, которая указана в первом сообщении. Необходима синхронная работа всех онлайн пользователей (в определенную единицу времени всем должны выводиться аватары из одного и того же определенного блока).

burunduk, при каждой загрузке страницы скрипт определяет текущее время в системе пользователя, к нему и привязывается номер дежурного блока. То есть, работа скрипта у каждого из пользователей будет более или менее синхронизирована (единственная погрешность - неправильно выставленное системное время). С этой задачей я справилась. Проблема заключается в том, как заставить скрипт с обновленными двумя параметрами начать воспроизведение с места остановки, без "прижков" по диапазону (место остановки можно напрямую указывать в коде скрипта).

burunduk, у этих миллионов пользователей соц. сети в браузерах. То есть, одновременно запущенных копий скрипта - большое количество.

Дикий пионер:
Требований не вижу, задача в том, чтобы не повторялись аватарки? Иначе в чем проблема, что период и размер блока могут меняться?

Аватарки в любом случае будут повторяться (спустя несколько месяцев). Основная цель скрипта: 5 минут работать с одним блоком из 100 пользователей (выбирать оттуда случайные аватарки), потом не трогать этот блок максимально возможное время.

Всего: 3716