Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.09.2018, 16:20
Интересующийся
Отправить личное сообщение для losapwild Посмотреть профиль Найти все сообщения от losapwild
 
Регистрация: 22.04.2017
Сообщений: 25

Не кэшировать 1 js скрипт.
Есть скрипт, который в div через таймер показывает определенное число, которое я задаю в отдельном js. Но если не нажимать ctrl + f, то есть не делать чистку кэша - при обновлении показывается старое число.

Сайт на htm. Код div

<div id="otschet"></div>


код js файла

var otschet_text = document.getElementById('otschet'),
start_n = 60, 
finisch_n = 0, 
sumtime = 15, 
step_s = sumtime*20, step_n = (start_n-finisch_n)/step_s, pusk_on = 0, text2_on = 0;
var otschet_coords = otschet_text.getBoundingClientRect(), otschet_top = otschet_coords.top, vysota_okna = document.documentElement.clientHeight;
if (otschet_top < vysota_okna) {
	var timerId1 = setTimeout(pusk1, 3000)
	pusk_on = 1;
}
function pusk1() {
	var timeout_id = setTimeout(action, 50);
}
function action() {
	start_n = (start_n-step_n).toFixed(2);
	if (start_n > finisch_n) {
		otschet_text.innerHTML=start_n;
		timeout_id = setTimeout(action, 50);
	} else {
		if (text2_on != 1) {
		otschet_text.innerHTML='Сейчас будет код'; 
		text2_on = text2_on+1;
		timeout_id = setTimeout(action, 1000);
		} else {
			otschet_text.innerHTML='530'
		}
	}
}
if (pusk_on == 0) {
	window.addEventListener('scroll', fotschet, false);
	document.body.addEventListener('scroll', fotschet, false);
	window.addEventListener('resize',  fotschet);
	function fotschet() {
		var otschet_coords = otschet_text.getBoundingClientRect(), otschet_top = otschet_coords.top, vysota_okna = document.documentElement.clientHeight;
		if (otschet_top < vysota_okna) {
			if (pusk_on == 0) {
				pusk_on = 1;
				var timeout_id = setTimeout(action, 50);
			}
		}
	}	
}


"otschet_text.innerHTML='530'" - вот здесь задаю число.

вариант с <script src="//webcrasty.ru/jsp/webcrasty.js?115461"></script>

Не подходит, т.к нет возможности вручную менять версию, но рандомом не получается почему то сделать, чтобы ver js файла менялась.
Ответить с цитированием
  #2 (permalink)  
Старый 15.09.2018, 16:37
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

На странице подключения <script src="//webcrasty.ru/jsp/webcrasty.js?время последнего изменения файла"></script>, тогда всегда будет грузиться последняя. Если же ставить просто метку времени, то вообще не будет браться из кеша.
Ответить с цитированием
  #3 (permalink)  
Старый 15.09.2018, 17:05
Интересующийся
Отправить личное сообщение для losapwild Посмотреть профиль Найти все сообщения от losapwild
 
Регистрация: 22.04.2017
Сообщений: 25

метка времени
Сообщение от laimas Посмотреть сообщение
На странице подключения <script src="//webcrasty.ru/jsp/webcrasty.js?время последнего изменения файла"></script>, тогда всегда будет грузиться последняя. Если же ставить просто метку времени, то вообще не будет браться из кеша.

вот я это тоже нашел,но каким образом сделать так, чтобы бралась эта метка времени? я пробовал сделать вот так:

<script src="//webcrasty.ru/jsp/webcrasty.js?<?=filemtime( '//webcrasty.ru/jsp/webcrasty.js' )?>">

но по факту время не подставлялось. если что index у меня не php, а htm
Ответить с цитированием
  #4 (permalink)  
Старый 15.09.2018, 17:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

У вас что статический сайт? Трудно представить динамический сайт шапка страниц которых "мертвая". Как минимум у страницы меняется title, дескриптор и ключевые слова. То есть шапка, это подключаемый элемент страницы использующий серверный язык.
HTML страницы, то есть код на них, тоже может исполняться, для этого нужно добавить это расширение в исполняемые файлы.
Ответить с цитированием
  #5 (permalink)  
Старый 15.09.2018, 17:24
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

в .htaccess можно указать
<FilesMatch "webcrasty.js">
Header set Cache-Control "max-age=0"
</FilesMatch>
Ответить с цитированием
  #6 (permalink)  
Старый 15.09.2018, 17:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

j0hnik, нельзя так делать.
Ответить с цитированием
  #7 (permalink)  
Старый 15.09.2018, 17:34
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

laimas,
почему?
Ответить с цитированием
  #8 (permalink)  
Старый 15.09.2018, 17:35
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Потому что это топорное решение лишающее пользователя использовать кешируемое.
Ответить с цитированием
  #9 (permalink)  
Старый 15.09.2018, 22:17
Интересующийся
Отправить личное сообщение для losapwild Посмотреть профиль Найти все сообщения от losapwild
 
Регистрация: 22.04.2017
Сообщений: 25

в htaccess не вариант. нужно либо в самом js, либо в html,

как здесь сделать рандомое время файла или версию после каждого обновления файла?

"<script src="//webcrasty.ru/jsp/webcrasty.js?115461"></script>"


вот эту штуку "?115461"

---

и вроде есть какой то скрипт, который добавив в js будет держать кэш некоторое время. хотя бы час будет нормально, но чтобы потом сбрасывался. если есть интегрируйте пожалуйста в скрипт, который в 1 сообщении, т.к месяц провожусь)

Последний раз редактировалось losapwild, 15.09.2018 в 22:22.
Ответить с цитированием
  #10 (permalink)  
Старый 15.09.2018, 22:50
Интересующийся
Отправить личное сообщение для losapwild Посмотреть профиль Найти все сообщения от losapwild
 
Регистрация: 22.04.2017
Сообщений: 25

ПОЛУЧИЛОСЬ!!

решение:

<script>document.write('<script src="https://webcrasty.ru/jsp/webcrasty.js?dev=' + Math.floor(Math.random() * 100) + '"\><\/script>');</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подгрузка удаленного скрипта средствами JS seowin Общие вопросы Javascript 1 02.03.2015 10:12
Нужен js скрипт Good1988 Общие вопросы Javascript 1 08.04.2013 08:25
GET в скрипт js HaseProgram Общие вопросы Javascript 6 12.01.2013 16:26
Требуется скрипт на JS oleg666 Работа 2 21.09.2012 10:56
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56