Когда это произойдет?

<script type="text/javascript" src="test.php"></script>

В первый раз я посещаю ту страницу, test.php не посещают,

но если я обновлю страницу, то она будет выполнена.

Вы когда-либо испытывали это?

5
задан Tola Odejayi 6 January 2010 в 06:07
поделиться

6 ответов

[

]Это произойдет, когда test.php будет кэшироваться локально или удаленно.[

].
9
ответ дан 18 December 2019 в 08:28
поделиться
[

] Как говорили Тор и Шелки, это, скорее всего, вызвано кэшированием страницы. Если у вас установлен Firebug, откройте закладку "Net" при переходе на страницу и вы увидите, что там написано "304 Not Modified" - это значит, что она была кэширована.[

] [

]Самый простой и надежный способ (по моему опыту) остановить кэшируемый файл - это добавить к нему случайную строку запроса:[

] [
<script type="text/javascript" src="test.php?_=46031535"></script>
] [

]Вам нужно будет просто изменять ее при каждой загрузке страницы (либо на стороне сервера, либо на стороне клиента). [

] [

]Конечно, если кэширующие заголовки правильно настроены на сервере, то это не должно быть проблемой, но я всегда считал, что этот метод проще.[

].
4
ответ дан 18 December 2019 в 08:28
поделиться

Откуда вы знаете, что она не посещается?

Вы предполагаете это, потому что какой-то код внутри нее не выполняется?

Если это так, то может быть, что вы получаете доступ к DOMу страницы, пока страница еще не полностью загружена ... (и, таким образом, javascript не работает)

Но во второй раз (и после этого) html страницы кэшируется, и поэтому, когда скрипт пытается получить доступ к DOMу, он уже там, и код работает...

просто другая мысль ;)

ps. вы получаете какие-нибудь ошибки Javascript ?

.
0
ответ дан 18 December 2019 в 08:28
поделиться
[

] Это может произойти, когда файл []test.php[] кэшируется -- который может быть либо в кэше браузера, либо каким-то прокси-сервером.[

] [

][
] Может помочь кэширование test.php ; это можно сделать, отправив правильные HTTP-заголовки -- цитируя пример из [][]header[][] manual page :[

] [
] [

]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
?>
]
2
ответ дан 18 December 2019 в 08:28
поделиться
[

]Кэширование, вероятно, вызывает прерывание вызовов. Вы можете заставить его вызывать каждый вызов, добавляя к пути постоянно изменяющуюся строку:[

] [
<script type="text/javascript" src="test.php?u=<?php print time(); ?>"></script>
]
2
ответ дан 18 December 2019 в 08:28
поделиться

похоже, что ваш скрипт не зарегистрирован при загрузке страницы, он находится внутри тега Head?

2
ответ дан 18 December 2019 в 08:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: