25  /  26

Случайные и неслучайные строки

Просмотров: 25196
Дата последнего изменения: 06.06.2024
Роберт Басыров
Сложность урока:
2 уровень - несложные понятия и действия, но не расслабляйтесь.
1
2
3
4
5
Недоступно в лицензиях:
Ограничений нет

Зачастую в коде компонентов для генерации уникальных идентификаторов используются методы randString и rand, выдающие новые случайные значения при каждом своем выполнении. Вследствие этого статическая часть страницы изменяется, приводя к перезаписи страницы на диск.

Для устранения этой проблемы разработан специальный метод псевдопоследовательностей (псевдослучайный генератор), который учитывает название компонента и порядок его подключения на странице. Разные компоненты, расположенные на странице, будут иметь разные источники псевдослучайных величин. Данные псевдослучайные строки будут одинаковы в рамках конкретного компонента. Такой подход обеспечивает стабильную генерацию и избавляет от перезаписи статических страниц на диск.

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

Метод randString() класса CBitrixComponent обеспечивает стабильную генерацию псевдослучайных величин. Метод можно многократно вызывать в шаблоне без влияния на другие компоненты и шаблоны.

Вызов выглядит следующим образом:

$this->randString();

В качестве примера можно взять генерацию видеоблока с использованием случайного ID.



25
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии