const makeAuthOnClick = (arr) => {
const handler = () => {
//здесь код вашего хендлера
};
document.querySelectorAll(arr.join(', ')).forEach(element => element.addEventListener('click', handler));
};
сейчас как я понимаю у вас просто набор данных, с индексами и вы этим данным пишете select count() .. where страница, максимум объединив в запросе несколько таблиц, по которым разбиты данные
class PipelineBatchProxy implements \Countable
{
/** @var \Predis\Pipeline\Pipeline */
private $pipeline;
private $totalCounter = 0;
private $currentCounter = 0;
private $batchSize;
public function __construct(\Predis\Pipeline\Pipeline $pipeline, int $batchSize = 10000)
{
$this->pipeline = $pipeline;
$this->batchSize = $batchSize;
}
public function __call($method, $arguments)
{
$ret = call_user_func_array([$this->pipeline, $method], $arguments);
$isExecuted = false;
if ($method === 'execute') {
$isExecuted = true;
} else {
$this->totalCounter++;
$this->currentCounter++;
}
if ($this->currentCounter >= $this->batchSize) {
$this->pipeline->execute();
$isExecuted = true;
}
if ($isExecuted) {
$this->currentCounter = 0;
}
return $ret;
}
public function count(): int
{
return $this->totalCounter;
}
}
$pipeline = new \PipelineBatchProxy($redis->pipeline());
for ($i = 0; $i < 1000000; ++$i) {
$pipeline->set('somekey'.$i, $i);
}
$pipeline->execute();