Дело вот в чем: на страницах сайта есть повторяющиеся куски HTML кода, естественно не хочется все это копировать на каждую страницу...
Тут я вижу два выхода:
1)Использовать серверный скрипт ( напр. include в PHP). Но тогда куски кода будут каждый раз пересылаться по сети...
2)Использовать JavaScript т.е. написать что нибудь типа <script src="template.js">
А в файле "template.js"
.........
document.write("повторяющийся кусок текста");
........
Тогда этот файл закэшируется в первый раз и следующие страницы будут грузиться быстрее...
У меня на сайте клиенту грузиться скрипт, который формирует header'ы и footer'ы на всех не основных страницах. Работает.
Правда хостинг другого варианта не предлагает без ручного копирования кода всюду
Здравствуйте, Den777, Вы писали:
D>2)Использовать JavaScript т.е. написать что нибудь типа <script src="template.js"> D>А в файле "template.js" D>......... D>document.write("повторяющийся кусок текста"); D>........ D>Тогда этот файл закэшируется в первый раз и следующие страницы будут грузиться быстрее...
D>Какой вариант мне предпочесть ?????? Почему????
Ну и пуркуа бы и не па?
Вполне замечательная идея, ИМХО. Недостатков не вижу, во всяком случае тех, из-за которых стоило бы отказаться...
Сам я давно практикую подгрузку большинства кода при входе на сайт один раз — и на всю сессию. Выглядит правда, посложней, чем это(да и код там посложней), но тем не менее это очень удобно.
--
DSD
Re[2]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, DSD, Вы писали:
DSD>Сам я давно практикую подгрузку большинства кода при входе на сайт один раз — и на всю сессию. Выглядит правда, посложней, чем это(да и код там посложней), но тем не менее это очень удобно.
А можно поподробнее?
Re[3]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, mikkri, Вы писали:
DSD>>Сам я давно практикую подгрузку большинства кода при входе на сайт один раз — и на всю сессию. Выглядит правда, посложней, чем это(да и код там посложней), но тем не менее это очень удобно. M>А можно поподробнее?
Что именно? Мою загрузку кода? Если не влом разбираться самому, тогда вперед: http://911.ru/newintf
(сам сайт еще не готов(это делается новая версия, пока еще разрабатывается серверная сторона), но механизм загрузки интерфейса и JS-API реализован в полной мере.)
--
DSD
Re[4]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, mikkri, Вы писали:
DSD>>>Сам я давно практикую подгрузку большинства кода при входе на сайт один раз — и на всю сессию. Выглядит правда, посложней, чем это(да и код там посложней), но тем не менее это очень удобно. M>>А можно поподробнее? DSD>Что именно? Мою загрузку кода? Если не влом разбираться самому, тогда вперед: http://911.ru/newintf DSD>(сам сайт еще не готов(это делается новая версия, пока еще разрабатывается серверная сторона), но механизм загрузки интерфейса и JS-API реализован в полной мере.)
Хммм... В Опере http://911.ru/newintf не работает ( у меня седьмая версия). Хотя устроено оригинально....
А если влом самому разбираться ???
Я еще забыл сказать. Сайт рассчитан на то, что админиить его буду не один только я. Т.е нужно что-нибудь достаочно простое (пусть даже не очень многофункциональное ) и удобное для быстрой смены дизайна... Идеальный вариант был бы XML с PHP вставками...если бы не надо было парсер писать...
Re[4]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, mikkri, Вы писали:
DSD>>>Сам я давно практикую подгрузку большинства кода при входе на сайт один раз — и на всю сессию. Выглядит правда, посложней, чем это(да и код там посложней), но тем не менее это очень удобно. M>>А можно поподробнее? DSD>Что именно? Мою загрузку кода? Если не влом разбираться самому, тогда вперед: http://911.ru/newintf DSD>(сам сайт еще не готов(это делается новая версия, пока еще разрабатывается серверная сторона), но механизм загрузки интерфейса и JS-API реализован в полной мере.)
Ты скрипты загружаешь в глобавльные переменные и держишь пользователя на одной странице? Или все же их куда-то на его машине записываешь??? Но тогда куда?
Re[5]: Стоит ли делать так ??? ( Javascript include)
D>Хммм... В Опере http://911.ru/newintf не работает ( у меня седьмая версия). Хотя устроено оригинально....
А он под оперу и не рассчитан IE 4+ only.
D>Я еще забыл сказать. Сайт рассчитан на то, что админиить его буду не один только я. Т.е нужно что-нибудь достаочно простое (пусть даже не очень многофункциональное ) и удобное для быстрой смены дизайна... Идеальный вариант был бы XML с PHP вставками...если бы не надо было парсер писать...
Ну так то, что ты вначале сам предложил, тебе вполне подойдет, а уж по необходимости сам будешь усложнять свой код загрузки...
--
DSD
Re[5]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, mikkri, Вы писали:
M>Ты скрипты загружаешь в глобавльные переменные и держишь пользователя на одной странице? Или все же их куда-то на его машине записываешь??? Но тогда куда?
В общем-то там только одна глобальная переменная, которая является почти полиморфным(самокопирующимся) обьектом с довольно сложной структурой.
Именно этот обьект и содержит в себе и API, и логику, и куски интерфейса. Пользователь действительно фактически находится на одной странице все время.
Но ничего не стоит перевести его на другую страницу, в нужный момент "самоскопировав" в нее этот основной обьект.
После загрузки обьект с сервером обменивается только полезными данными, интерфейс генерится на лету. При необходимости части интерфейса можно подгружать с сервера... короче довольно здоровски все получилось, я сам не ожидал вначале такого результата
--
DSD
Re[6]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, DSD, Вы писали:
DSD>Здравствуйте, mikkri, Вы писали:
M>>Ты скрипты загружаешь в глобавльные переменные и держишь пользователя на одной странице? Или все же их куда-то на его машине записываешь??? Но тогда куда? DSD>В общем-то там только одна глобальная переменная, которая является почти полиморфным(самокопирующимся) обьектом с довольно сложной структурой. DSD>Именно этот обьект и содержит в себе и API, и логику, и куски интерфейса. Пользователь действительно фактически находится на одной странице все время. DSD>Но ничего не стоит перевести его на другую страницу, в нужный момент "самоскопировав" в нее этот основной обьект. DSD>После загрузки обьект с сервером обменивается только полезными данными, интерфейс генерится на лету. При необходимости части интерфейса можно подгружать с сервера... короче довольно здоровски все получилось, я сам не ожидал вначале такого результата
А можно поподробнее?? Что значит "самоскопировать"???
И каким образом происходит обмен с сервером данными ??? Через невидимый фрейм ???
Кстати по-моему примерно то же самое можно сотворить с помощью XML и DOM — полегче и побыстрее будет, но только для IE 5+, я не ошибаюсь ??
Re[7]: Стоит ли делать так ??? ( Javascript include)
Здравствуйте, Den777, Вы писали:
D>А можно поподробнее?? Что значит "самоскопировать"???
У обьекта в конструкторе заложены спецфункции, позволяющие дублировать самого себя.
Обьясню на примере, что это такое:
К примеру, у тебя есть массив my_arr.
Если ты напишешь my_arr2=my_arr, то my_arr2 не будет дубликатом массива my_arr, но будет ссылкой на него.
Если эти два массива просты, как например, массив строк, то их можно сдублировать следующим образом: my_arr2 = my_arr.join(":").split(":"); (при условии, что символ ":" внутри строк массива не встречается)
Но массивы могут быть и более сложной структуры: иметь подмассивы, каждый элемент может ссылаться на разнородные обьекты, и т.п.
То есть некоторые вещи в JS присваиваются по ссылке, а некоторые по значению.
Вот мой обьект и поддерживает полное самодублирование.
Пример 2:
предположим у тебя есть функция foo().
ты создаешь новое окно _win=window.open(...)
а потом пишешь: _win.foo = foo; (т.е. делаешь в новом окне такую же глобальную функцию)
На самом деле _win.foo() будет ссылкой на foo() в текущем окне, и если ты закроешь первое окно, во втором эта функция уже не будет работать, поскольку потеряет свое тело.
Мой обьект и это тоже поддерживает, т.е. дублирует тела собственных функций в новое место.
D>И каким образом происходит обмен с сервером данными ??? Через невидимый фрейм ???
Да.
Этих фреймов может быть несколько.
Они могут быть keep-alive.(неразрывное постоянное соединение)
D>Кстати по-моему примерно то же самое можно сотворить с помощью XML и DOM — полегче и побыстрее будет, но только для IE 5+, я не ошибаюсь ??
Насчет IE5+ может и не ошибаешься, но насчет полегче и побыстрей — ошибаешься явно. XML тормозит серверную часть, а DOM — клиентскую.
Сам Майкрософт в статьях по оптимизации говорит, что DOM тормозит, и советуют там, где можно, стараться ним не пользоваться.
Да ты и сам можешь это проверить: попробуй скажем в <select> добавить пару тысяч опций через DOM и другими, старыми методами, и замерь при этом время выполнения.
ИМХО, быстрей всего будет работать нечто подобное:
function genComboItems(_obj, _count) {
var i=0;
var _arr = new Array(_count);
_obj.length=0;
for (i=0;i<_count;i++) _arr[i]="<option value='"+i+"'>"+i+"</option>";
_obj.innerHTML = _arr.join("");
_obj.selectedIndex=0;
_obj.defaultSelected=_obj.selectedIndex;
}
genComboItems(document.all.my_select, 10000);
--
DSD
Re[8]: Стоит ли делать так ??? ( Javascript include)