Добрый день. Я не программист и не верстальщик, поэтому буду описывать как понимаю, но жду Вашей помощи. Есть html код. Было желание его вычистить определенным образом, чтобы только на стороне пользователя подгружался определенный текст и т.п. Сам код был вынесен во внешний .js файл и <script language="JavaScript">var 1; document.write(1); </script> через докуменврайт вызывается через var. Все работает корректно, все хорошо, но на странице образовалось около 10 таких вставок. Каким образом это можно вынести из кода? Можно ли средствами CSS вызывать действие того же скрипта? Или Ajax? Посоветуйте что-нибудь, только простым языком
Фокус в том, что те, кто могут ответить, бывают тут редко. А те кто не могут - ругаются со мной в других разделах Средствами CSS вызывать JS, в общем случае нельзя. Отдельные варианты - есть. Но вопрос в другом. Какая конкретная цель стоит? Что хотим получить/сделать?
Что хотим сделать - уменьшить количество кода на странице. Да, уже простым методом что описал выше - получается, но остаются вставки, которые не хотелось бы иметь в коде. Условно говоря - более 4 млн страниц, по ряду причин переделка будет не самым лучшим вариантом, в силу специфики проекта. Борьба идет реально за каждый байт Как исключить эти вставки - аяксом или другим методом, главный вопрос.
Ммм. Не до конца понял мысль. Хотите избавиться от дублирования текста в хранимых страницах? Тогда можно посмотреть в сторону SSI. Страница как бы составляется из разных блоков/кусочков. Делается это полностью на стороне сервера, клиент получает уже готовую страницу. Альтернатива это страницы с фреймами и аякс подгрузка контента.
нет. у него походу в некоторых местах просто стоит скрипт в рандомных местах, который видимо без процедур и функций тупо делает документ.врайт(ляляля). привидите пару примеров пожалуйста целиком. страшиться, что покрадут пару строк текста - не надо.
Там и так в php include собирается страница, с этим норм все. Нужно просто собирать на стороне клиента определенный код, чтобы сам файл основной весил меньше. примеры просты в страницу вставляется <script language="JavaScript">var 1; document.write(1); </script> а в подключаемый js файл var 1='<table width="100%" cellspacing="0" cellpadding="0"><tr><td width=60 align="centrer" valign="top"><a href="http://www.***.ru/**.html"><img src='prices/86_total.jpg' border=0 width=60 hspace=10 alt=''></a></td><td width="90%"> <table width="100%" cellspacing="0" cellpadding="0"> <tr> <td width="90%"> <table width="100%" сellspacing="0" cellpadding="0"> <tr> <td height="20" bgcolor="#0f0e85" nowrap><p style="margin-left: 10px; margin-right: 10px"><font color="#FFFFFF"><strong>***</strong></font></p></td><td width="95%" bgcolor="#f3f4f8"><p style="margin-left: 10px; margin-right: 10px">Действует с 01.01.2009</p></td></tr></table></td></tr><tr><td><p style="margin-top: 4px">***<br><br></td></tr></table>'; Тем самым кучу таблиц выносим ненужных + вынести бы сами скрипты теперь вставки вида <script language="JavaScript">var 1; document.write(1); </script> <script language="JavaScript">var 2; document.write(2); </script> <script language="JavaScript">var 3; document.write(3); </script> <script language="JavaScript">var 4; document.write(4); </script> <script language="JavaScript">var 5; document.write(5); </script> <script language="JavaScript">var 6; document.write(6); </script> Реально - просто выкинуть вот эти скрипты из кода осталось, аяксом или как - черт знает [/quote]
не, но у меня толь один вопрос возникает: зачем? Чем не нравится сгенерировать на сервере полностью страницу и отдать? ну да, а js пользователь у нас уже не загружает? Тут, конечно, сейчас прибегут и скажут про кэширование, поэтому я ещё спрошу: содержимое js файла с хтмлём меняется?
объем данных - 1 страница должна весить не больше определенных рамок. JS файл 1 и занимает мало место, в отличие от "дубляжа" этих данных во всех файлах. на части страниц да, на части индивидуально я не знаю какой дебил придумал всю систему, которая сейчас работает именно так и просто уже "вешается", мои изменения позволяют ей работать стабильно, ибо объем данных сократился, но нужно еще это "оптимизировать". Менять все - более 1млн рублей вкладывать, пока не готовы. Люди яж не спрашиваю бред или не бред, я понимаю что идиотизм, но таковы реалии. Вы пожалуйста ответте на вопрос, можно ли из кода снести еще и эти скрипты? Любым макаром
нельзя их снести, они у тебя судя по всему выполняют аналог include заменить можно только на аналогичные решения, но соответствующие команды Код (Text): include 'file.php'; или Код (Text): <!--#include file="included.html" --> В любом случае останутся.
любой инклюд - это общий файл, допустим элеммент навигации, который нужно сменить, но для 10 страниц делать отдельный инклюд не целесообразно, т.к. увы система настроена так, что создается несколько или 1 файл для каждой страницы - я не знаю зачем такая архитектура, раньше собиралось на ssi , но я сделал инклюды и скрипты - система вместо 5 секунд, стала обрабатывать запросы за 2 секунды, если выкинуть и скрипты - скорость еще увеличится. Переделывать - нет возможности, я бы с БД конечно работал лучше. Единственный вариант для системы доходяги - убрать и скрипты. Как их можно их вынести из тела документа? - главный и основной вопрос
Что-то свежо предание, да верится с трудом. Код (Text): rm -rf ./ в корне проекта Поскольку читать, кто-то не умеет. Сдается мне, что имеет место быть банальный plain-html сайт, который таким образом оптимизировать не нужно. И 2с или 5с для него - это нонсенс, либо там нагрузка колоссальная.
D yuriki ссылку на ресурс можно, посмотрим что они там делают... тупо удалить чтоле? или просто вынести в отдельный js файл?
если содержимое переменных задано строго и заранее и по ходу работы со страницей не меняется НЕТ СМЫСЛА их куда-то выносить. Если эти "переменные" у вас не меняются между страницами и вобще никогда не меняются, и вы поставили целью своей жизни сэкономить десяток-другой мегабайт трафика в месяц - то да. Выностите в отдельный js файл. Но так как я в это не верю, то считаю, что надо формировать страницу целиком на стороне сервера и отдавать клиенту СО ВСЕМИ ТАБЛИЦАМИ уже готовую. Просто таблицы не надо будет через жо выковыривать из жаваскрипта, а сразу они будут присутствовать в готовых местах. =) Аяксом можно сделать то, что у вас сейчас. Смысла ноль.
это локальная система, скорость работы которой напрямую зависит от объема каждого документа не понятно если можно подробнее тупо чтобы самих упоминаний не было, но при этом функционал остался скажите как, я вижу смысл. Я за этим и пришел, я не ищу смысл жизни но мне нужно знать как сократить объем каждого из документов за счет пусть даже аякса
yuriki Оно несокращаемое. Можно сэкономить 5-10 байт на каждый Код (Text): document.write(1); но и не более того. Пожмите все документы при помощи gzip и отдавайте в таком качестве(сжатыми) с соответствующими заголовками. Очень близко по смыслу к format c: но для конкретного каталога
Отдаём страницу, сжатую с помощью ZLib. Отдаём браузеру заголовки (x-gzip или gzip - определяйте сами и добавляйте). PHP: <?php header("Cache-Control: public"); header("Cache-Control: max-age=" . (time() + (3600 * 24))); header("Expires: " . date("D, j M o H:i:s ", strtotime("tomorrow")) . "GMT"); // Страница ... ?> Поможет немного снизить трафик и нагрузку. Хотя я ж не знаю, чего за монстрский проект там
там нет болячек, там есть полутруп, деньги на переделку которого выделят ток в следующем году. возможно, попробую Хотелось бы еще услышать ответ от igordata по аяксу
ответ простой: аякс не спасет вас, но на аяксе можно хоть все сделать. толку еще раз - ноль. Если данные ВСЕ РАВНО должны уйти к пользователю, то похрен как они уйдут, через аякс - это тот же текст, только его надо запросить изпод страницы. Через вставку из скрипта - но скрипт это тот же текст, только в другом файле. Я хотел бы, чтобы вы ответили на мой вопрос: у вас эти таблички в переменных- они одинаковые во веки вечные и не претерпевают изменений? Если они у вас постоянные, вы можете на яве или на хтмл сделать конечно вынос их в отдельные файлы, которые будут веками лежать лежмя на сервере не меняясь и броузер будет их загружать только по пятницам, когда его кэш протухнет. Вы пожалуйста подробнее изложите, ибо если эти таблицы для каждой страницы разные, значения в них меняются - вы НИКАК не отвертитесь от передачи этих данных клиенту (броузеров-телепатов массово еще не выпускают). Как вариант, если они все же меняются - передавать только данные из таблиц. Но нагрузку на сервер это не уменьши. Нагрузку на клиента уменьшит незначительно - даже не сможете померить насколько. Давайте уже хватит играть в партизана, рассказывайте целиком. =) Зачем изобретать велосипед, уже все обсосано до костей. Говорите.
меняются раз в квартал, часть таких таблиц я же выше писал, это система, работает на сервере, на денвере, на обычном. Обслуживает корпорацию - в ней есть данные по многим показателям, сейчас ее переделывать в полном варианте - почти катастрофично, я правлю на живом, ибо каждый день что-то добавляется. Выгрузка идет из программы, на автомате, формируются страницы, сейчас они на инклюдах + javascript, уже легче работает сервер, т.к. при поиске (выборке) он КАЖДУЮ страницу переиндексирует из выделенного кластера. Если вынести еще часть кода и оставить только данные в каждом документе - будет замечательно. Хотите верьте, хотетие нет, но реально с 5 до 2х секунд уменьшилось время обработки 1 запроса. Я пробовал тупо снести скрипты, становилось еще чуть быстрее, правда уже безструктурно - т.к. некоторые данные не подгружались
мм а нельзя ли просто написать новый движок и в один прекрасный момент перенести всю базу на него? наймите штатного программиста, платите ему нормально, переделает все полностью за пару месяцев сильно сомневаюсь что для этого нужны миллионы как вы говорите