heksen
@heksen

Как передать случайное число в параметр js?

Привет! Собственно говоря надоело передавать постоянно новый параметр в файл javascript при линковке в index.php для перекеширования данных. (например: client.js?ver=3). Возможно-ли это сделать через например rand? (например: client.js?ver=rand()). Сработает-ли rand в данном случае? Интересует именно этот способ, а не полная отмена кэширования на клиенте.
  • Вопрос задан
  • 672 просмотра
Решения вопроса 1
In4in
@In4in
°•× JavaScript Developer ^_^ ו°
Ну и смысла тогда в кэшировании не будет. Каждый раз браузер будет вынужден перезагружать файл.

Лучше настройте генерацию этих чудо-чисел через PHP (filemtime + Файл для хранения истории).

--> Пример <--
function createFileTail(string $path){
   
   $server = $_SERVER['DOCUMENT_ROOT'];
   
   $targetFilePath = ($server . $path);
   $targetFileTime = filemtime($targetFilePath);
   $saveFilePath = ($server . "tailHistory.json");
   $saveFileTime = 0;

   $history = json_decode(
     file_get_contents($saveFilePath), true
   );

   if(!array_key_exists($path, $history) || $history[$path] < $targetFileTime){

       $saveFileTime = $targetFileTime;

       $history[$path] = $saveFileTime;

       file_put_contents(
          $saveFilePath, json_encode($history)
       );

   }else{

       $saveFileTime = $history[$path];

   }

   

   return $saveFileTime;
}


src="/client.js?<?=createFileTail('client.js')?>"
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
maximpushkarev75
@maximpushkarev75
Very bad monkey coder
Это?

var timestamp = Date.now(),
url = <base_url>+'?v='+timestamp;
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы