Вывод js на сайты кэширование

180
14 марта 2017, 15:10

Доброго времени суток друзья. Не знаю как побороть кэширование.

код который выводит блок ссылок на сайт

 <span id="xlink295"></span>
    <script async src="https://x-linkpay.com/go.php?for=295"></script>

Код на самом сервере:

<!-- БЛОК ССЫЛОК -->
<?php }
if ($inf['ty'] == 2) {
$fromto = 'https://'.SITE.'/fromto/'.$id;
$adq = mysqli_query($connect_db, "SELECT * FROM t_ad WHERE site='$id' AND st = '1' AND type = '2' AND payed = '1' ORDER BY id DESC LIMIT $inf[how]");
if ($inf['wh'] == 1) { $wh = ''; $dv1 = '<div style="margin: 10px 0;">'; $dv2 = '</div>'; } else { $wh = ' '; $dv1 = ' '; $dv2 = ' '; }
$toad = ''.$dv1;
while($row = mysqli_fetch_array($adq)) {
if (!empty($row['col'])) { $col = ' style="color: #'.$row['col'].'; font-weight: bold"'; } else { $col = ''; }
$cl = mysqli_num_rows(mysqli_query($connect_db,"SELECT id FROM t_sta WHERE si = '$id'"));
$toad .= '<a href="https://'.SITE.'/goto/'.$row['id'].'"'.$col.' target="_blank" title="Переходов за 24ч: '.$cl.'">'.$row['ti'].'</a><br>'.$wh;
mysqli_query($connect_db, "INSERT INTO `t_sts` (si,ad,ip,dt,ref,br,os) VALUES ('$id','$row[id]','$ip','$dt','$by','$br','$os')");
}
mysqli_query($connect_db, "INSERT INTO `t_sts` (si,ad,ip,dt,ref,br,os) VALUES ('$id','0','$ip','$dt','$by','$br','$os')");
$toad .= $dv2.'';
$ad = rawurlencode($toad); ?>
var xb = document.getElementById('xlink<?php echo $id; ?>');
xb.innerHTML = '<?php echo $toad; ?>';
<!-- КОНЕЦ БЛОК ССЫЛОК -->

Так вот JS выводимый кэшируется и при обновлении блока нужно сбрасывать кэш. Как побороть это ? Прошу помощи :)

Answer 1

Давай посмотрим заголовки запроса:

curl --head 'https://x-linkpay.com/go.php?for=295'
HTTP/1.1 200 OK
Server: nginx
Date: Mon, 13 Mar 2017 13:29:04 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Keep-Alive: timeout=60
X-Powered-By: PHP/5.6.30
Expires: Tue, 14 Mar 2017 01:29:04 GMT
Content-Encoding: gzip

Expires: Tue, 14 Mar 2017 01:29:04 GMT

Оптимальным решением задачи будет настройка ответа сервера таким образом, чтобы он явно информировал браузер о том, что ответ сервера не нужно кешировать. Например:

 Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
 Header set Pragma "no-cache"
 Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
READ ALSO
Перевести строки разбитые &ldquo;\n&rdquo; в массив [требует правки]

Перевести строки разбитые “\n” в массив [требует правки]

Есть вопрос, полный 0 в JavaScriptЕсть данные передаваемые от сервера в виде строк разбитых на "\n"

149
Почему defer не работает?

Почему defer не работает?

Примитивный пример: Есть скрипт с алертом, подключенный вот так <script src="jsjs" defer></script> с defer

298
Как получить текст из буфера при операциях cut и copy?

Как получить текст из буфера при операциях cut и copy?

У меня есть задача написать компонент, который будет получать и встраивать ссылки при копировании куска текста, для защиты авторского праваПопытался...

191