Я пытаюсь предотвратить кэширование, добавив '? t = 'до конца моих файлов JS. Какой самый быстрый способ получить такой номер? time() или rand() или что-то еще?Самый быстрый способ получить случайный номер php?
ответ
времени() и mt_rand() очень похожи с точки зрения эффективности в PHP-вы выбираете один или другой на основе каких факторов вам это нужно:
- Просто трудно догадаться: использование mt_rand() (например, генерируя соль использования)
- Получите уникальный идентификатор, который трудно угадать: используйте mt_rand (1, 931415926536); (Например, генерируя идентификатор сеанса)
- (очевидно) вести учет: использовать время() (например, предотвратить кэширование, журналы и т.д.)
Если вы действительно хотите знать, время() является слегка быстрее, но вам действительно не нужно беспокоиться об этом. (Это разница между одним или двумя небольшими частями второй.)
(mt_rand() примерно в 4 раза быстрее, чем рандов())
Вы, наверное, уже знаете это, но обязательно всегда профиль ваш код перед оптимизацией; часто он будет работать медленно по причинам, совершенно иным, чем то, что вы ожидали.
Время() немного быстрее, чем? Rand или mtrand? – Thwyrm
Время() немного быстрее, чем оба. Кроме того, для управления кешем существует небольшая вероятность, что вы будете генерировать одинаковое случайное число дважды; это не так (если ваша машина не очень быстро и у вас есть несколько запросов в секунду) для time(). –
Спасибо :) 15char – Thwyrm
Try:
'?t=' . mt_rand(time());
Почему не просто 'time()'? Выбор случайного числа между 1 и временем делает его медленнее ... Я не думаю, что он хотел совместить их, он просто хочет выбрать наименьший выбор. – animuson
^^ что он сказал. – Thwyrm
@animuson: Да, хорошая точка, обновленный 'mt_rand' лучший выбор в этом случае. – Sarfraz
srand(time());
echo '?t=' . rand();
Это не более случайное, чем time(), поскольку оно будет предоставлять одинаковое полу случайное число в течение 1 секунды в то время. –
Хотя это верно, прецеденты используют только предотвращение кэширования ресурсов JS. В этом случае я считаю это разумным решением. – Nathan
Если вы только предотвращение кэширования, время() будет вполне достаточно.
Является ли это более эффективным, чем rand или mt_rand? – Thwyrm
Без каких-либо испытаний или спекуляции, чтобы поддержать мое требование, я осмелюсь сказать «да». –
Я действительно не знаю, как работает функция времени, чтобы определить количество секунд, но я бы предположил, что это будет быстрее, чем запустить алгоритм случайных чисел, возможно, не так много. Тем не менее, он гарантирует, что вы никогда не получите результат повторения, который можно использовать с помощью функции случайных чисел. – animuson
Не используйте rand()
, используйте mt_rand()
.
Он использует генератор случайных чисел с известными характеристиками с использованием Mersenne Twister, который будет производить случайные числа в четыре раза быстрее, чем то, что обеспечивает среднее Libc RAND().
Это не глупо. Вы, – Thwyrm
, могли бы вы, ребята, бросить запугивание? вопрос не является глупым, и не является этим ответом. растут –
Назовите меня старомодным, но предотвращение кеширования - это то, чего можно и нужно добиться, используя HTTP-заголовки, а не уникальные URL-адреса. Если вы служите файл динамически с помощью PHP:
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
?>
в противном случае использовать файл .htaccess в Apache (или аналогичный конфиг в любой другой веб-сервер):
<FilesMatch "\.js$">
Header set Cache-Control "no-cache, must-revalidate"
Header set Expires "Sat, 26 Jul 1997 05:00:00 GMT"
</FilesMatch>
- 1. Каков самый быстрый способ получить случайный MPMediaItem
- 2. Какой самый быстрый способ получить случайный элемент из кортежа? (Питон)
- 3. Самый быстрый способ сравнить числа в php
- 4. Самый быстрый способ получить LayoutInflater
- 5. Самый быстрый способ получить количество цифр на номер?
- 6. PHP самый быстрый способ считывания ответа сервера
- 7. Самый быстрый способ получить групповые суммы?
- 8. Python - самый быстрый, самый эффективный, самый простой способ получить согласные
- 9. Самый быстрый взвешенный случайный алгоритм в Scala?
- 10. Самый быстрый способ взять
- 11. Самый быстрый способ импорта?
- 12. Самый быстрый способ Алгоритм
- 13. Самый быстрый способ загрузить/включить PHP-шаблон?
- 14. Самый быстрый способ кодирования JSon от php
- 15. PHP Какой самый быстрый способ подсчета строк?
- 16. PHP самый быстрый способ применить сильное размытие
- 17. Самый быстрый способ заменить строку в PHP
- 18. Самый быстрый способ настройки IIS и PHP
- 19. PHP: flatten array - самый быстрый способ?
- 20. Самый быстрый способ получить поразрядный средний байт?
- 21. Самый быстрый способ получить colormode изображений
- 22. Какой самый быстрый способ получить онлайн компьютеры
- 23. Какой самый быстрый способ получить подкап карты
- 24. sqlite, какой самый быстрый способ получить строку?
- 25. Каков самый быстрый способ получить элемент dom?
- 26. Самый быстрый способ получить обратные вызовы Ajax
- 27. Самый быстрый способ получить данные из API
- 28. Самый быстрый способ получить неотрицательный компонент
- 29. Самый быстрый способ получить час java.util.date?
- 30. Самый быстрый способ получить свойства документов umbraco
быстрый смысл хотя бы ресурсоемким. – Thwyrm
@ Justin: как всегда :) – BoltClock
Почему вы так обеспокоены скоростью этой конкретной операции? Вы профилировали? Сколько времени вы ожидаете сохранить, выбирая один за другим? ... позвольте мне быть более прямым: это не имеет значимой разницы. Мы говорим о разнице, измеренной в наносекундах. –