|
|
|||||
Теоретик и Практик
|
icnlude и многоязыковость
народ, есть такая ситуасьйон:
сайт делается на 3 языках. наиболее разумным способом на сегодня мне (а я вообще-то дизайнер) кажется сделать так: есть какой-то шаблон, допустим index.php, в котором описывается вся структура и форматирование, а в тех местах, где должен быть текст, у нас стоят переменные, например $header_1, $paragraf_1, $paragraf_2, $paragraf_3,... При выборе языка мы регстрим переменную $language, и значение переменной служит названием файла для включения. так вот есть у нас значит в папке language/ три файла - ua.inc, ru.inc, en.inc... прикол вот в чем: у нас эти файлы, описывая 6 разделов и кучу информации, могут весить примером 300 кило... вопрос вот в чем: если мы включаем с помощью include(); такой файл, юзеру будут отдаваться все 300 кило, или только выбраные интерпретатором 6-10 переменных, которые вызываются на этой странице? тоесть меня волнует вопрос, не придется ли бедному пользователю при проходе по сайту каждый раз с каждой страницей грузить всю текстуху, если даже на текущей странице написано только 2 слова: thank you... thanx ahead |
|
|||||
А как насчет require();
__________________
Why drink and drive when you can smoke and fly |
|
|||||
Оператор require() заменяется содержимым указанного файла. Этого достаточно в большинстве случаев, когда нужно сделать часто используемые функции и константы в целом доступными для сценария!!!
__________________
Why drink and drive when you can smoke and fly |
|
|||||
Регистрация: Jul 1999
Сообщений: 419
|
Если я правильно понял вопрос, то в данном случе нет никакой разницы использовать "инклюд" или "рекваер". Тебе ведь надо просто подгружать контент? Или там все-таки есть функции? И ты хочешь узнать, какой трафик получается для пользователя? И что ты подразумеваешь под выражением "всю текстуху"?
Пользователю будет отсылаться только обработанный хтмл. Все форматирование плюс контент включенного файла. Если контент весит 300к, значит отошлется столько. Если там всего два слова, значит и трафик небольшой. И это все не зависит от ПХП-форматирования основной страницы. Она может быть хоть 900к, а выдавать хтмл на 9к.
__________________
(c) All Rights Reserved |
|
|||||
Попробуй:
Прелоадить файлы. Записать в куки Перестать использовать 300 киловые файлы для страниц с двумя thank you
__________________
Что за дурь? 50 символов в подписи!? |
|
|||||
Регистрация: Dec 1999
Адрес: под ёлкой...
Сообщений: 1,855
|
По поводу загрузки инклюда.
Точно не уверен, но думаю тут два варианта: ) Полная загрузка файла(инклюда) (т.к. заранее не известно какие условия выполняются в срипте и в каком именно месте находится наша функция) ) Загрузка и одновременное выполнение инклюда. хотя думаю все же первый вариант. ЗЫ: На самом деле не так страшно, что инклюд будет весить 300 кило, т.к. он не передается на клиентскую сторону, а выполняется на сервере. Поэтому на скорость его подгрузки и вывод готовой страницы это особо не повлияет.
__________________
Не криви извилиной! |
|
|||||
Клиенту отдается только то, что ты ему отдаешь (с помощью print, echo, или весь текст за пределами <? ?>)
Посему 300 киловые инлкюды страшны только для сервера, который их будет обрабатывать. На самом деле для сервера это не страшно. Ежели все таки хочется немного помучаться и сделать полегче, то можно руководствоваться следующим: Любой сайт обычно разбит на несколько разделов. Следовательно не все строковые константы используются в одном разделе. Однако есть определенный набор констант (как правило не очень большой), который используется во всех (или во многих) разделах (слова типа "назад", "далее", "отмена" и т.д.). Остальные строки необходимы только в каких-то конкретных разделах (одном или нескольких). Отсюда следует, что можно создать несколько файлов со строковыми константами, разбитыми по таким группам, а потом из каждого раздела подключать только необходимые файлы. Естественно эти файлы дублируются для каждого языка.
__________________
Не ошибается то, что не работает. (с) Windows |
|
|||||
Теоретик и Практик
|
уточняем...
пардон ребята, я не очень четко сформулировал...
кстати, спасибо всем, кто ответил, кое какая полезная инфа в ваших ответах есть... а теперь уточняем на конкретном примере... 1. вид файла ru.inc (а также en.inc + ua.inc) <? // GENERAL MESSAGES $back = "предыдущая страница"; $fwd = "следующая страница"; ... $close = "закрыть окно"; // "MAIN" PAGE TEXT BLOCKS $page_title = "Моя домашняя страничка - главная"; $page_header = "Добро пожаловать на мою домашнюю страничку"; $about_paragraph = "Меня зовут Вас Пупкин. Я крутой и очень модный веб-дизайнер..."; $chapters_description = "У меня есть разделы Услуги, Портфолио, Котнакты, Гостевая и раздел, посвященный моему коту Бармалею..."; ... $outro = "Приятного путешествия по самому крутому сайту в инете! С вами всегда Вася Пупкин."; // "SERVICES" PAGE TEXT BLOCKS $page_title = "Моя домашняя страничка - услуги"; $page_header = "Перечень услуг, предоставляемых Васей Пупкином"; $web_services = "Я могу сделать вам супер-пупер сайт..."; $media_services = "А также я разрабатываю видеоролики, презентации и много другого барахла..."; ... $outro = "Чтобы заказать какую-нибудь шнягу, тыцьни сюда"; ?> Структура файла понятна? Так вот, если у нас 20 разделов, то файл этот может весить те 300 Кб. Интересует же такой вопрос: если мы вызываем на включение этот файл из страницы "Услуги", то из этого файла нам нужны только фрагменты (переменные) под комментариями GENERAL MESSAGES и "SERVICES" PAGE TEXT BLOCKS. При проходе по файлу движок ПХП выберет эти переменные (к ним идет вызов из шаблона с форматированием) и отправит их пользователю, либо отправит весь файл? надеюсь теперь нормально объяснил... |
|
|||||
Регистрация: Dec 1999
Адрес: под ёлкой...
Сообщений: 1,855
|
Re: уточняем...
Цитата:
ЗЫ: РНР - серверный скрипт, то выполяется на сервере (в отличие напимер от ява-скрипт). Все выполится на сервере и пошлет пользователю только то, что он запросил, а не весь скрипт.
__________________
Не криви извилиной! Последний раз редактировалось Pr0Head; 07.04.2002 в 20:43. |
Часовой пояс GMT +4, время: 21:26. |
|
« Предыдущая тема | Следующая тема » |
|
|