Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Подключение script один раз (https://javascript.ru/forum/css-html/41981-podklyuchenie-script-odin-raz.html)

Mateus 08.10.2013 10:42

Подключение script один раз
 
Доброго времени суток.
Проблема в том, что нужно реализовать на динамической страничке подключение скрипта только один раз. Т.е. я все время делаю

include 'file.php';
echo '<script type="text/javascript" src="script.js"></script>';


Какую можно поставить проверку, что бы подключать скрипт только один раз?
И как можно установить кэширование/gzip скриптов. Заранее благодарен.

ksa 08.10.2013 10:46

Цитата:

Сообщение от Mateus
Какую можно поставить проверку, что бы подключать скрипт только один раз?

1. Фиксируй где-то на сервере, что скрипт уже подключался.
2. Меняй в корне алгоритм формирования страницы

Mateus 08.10.2013 10:54

У меня к примеру сейчас стоит проверка через сессию, т.е.
if ($_SESSION['script']!=1){
// Добавляю скрипт
$_SESSION['script']=1;}


Как можно на сервере зафиксировать передачу скрипта?


п.с. Может быть добавить проверку в самом javascript? Т.е.

if (abcd!=1){
// добавляем весь код
abcd=1;
}

Ваше мнение?

ksa 08.10.2013 10:58

Цитата:

Сообщение от Mateus (Сообщение 275394)
У меня к примеру сейчас стоит проверка через сессию, т.е.
if ($_SESSION['script']!=1){
// Добавляю скрипт
$_SESSION['script']=1;}

Тогда не понятно почему он у тебя подключается более одного раза... :blink:

Mateus 08.10.2013 11:05

Не подгружается в случае, если пользователь ходит по одному модулю, т.е. site.com/page/1
site.com/page/2 и т.д.

Но в случае если переходит к другому модулю, то if вообще игнорируется, хотя значение в сессии по прежнему 1. Я попробовал добавить проверку в сам javascript и вроде работает. Буду тестировать, спасибо за помощь.

danik.js 08.10.2013 11:14

Цитата:

Сообщение от Mateus
И как можно установить кэширование/gzip скриптов. Заранее благодарен.

Если сервак - apache, то можно прописать соотвествующие правила в .htaccess
Можно добавить в проект минимизатор скриптов/стилей. Он сам гзипует, выставляет заголовки, объединяет, режет и прочее.

ksa 08.10.2013 11:18

Цитата:

Сообщение от Mateus
если переходит к другому модулю

Х/з, что в ПХП значит "модуль"... Но суть сессии - хранить данные сеанса пока он не завершен или не истек ее таймаут...

Mateus 08.10.2013 11:25

Всё работает правильно и сессия не работа из-за того, что подгружаемые ajaxom файл был с ошибкой. В пхп ничего модулем наверное не называется, не силен в дефинициях. В моём случае модулем назвал template.


Часовой пояс GMT +3, время: 20:29.