За месяц Июнь, 2008

оптимизация Oscommerce - уменьшаем нагрузку на сервер

OsCommerce - довольно известный движок для создания интернет-магазина. Широкие возможности, большое количество модулей-патчей - несомненный плюс. Однако, как и у всего, у Oscommerce имеются и минусы.

Одним из существенных недостатков, который зачастую оказывает решающее влияние при выборе движка для магазина является высокая требовательность к ресурсам (”громоздкость”, низкая производительность или “тормознутость” - термины не совсем корректные, однако, понятные каждому).

Похоже, что при разработке OScommerce вопросам производительности уделялось не так уж много внимания… Полностью переписывать OScommerce - решение далеко не оптимальное. Попробую собрать некоторые приемы, которые позволяют существенно снизить нагрузку на сервер со стороны OSCommerce.

Продолжение статьи про оптимизацию OsCommerce

Опубликовано Июнь 27, 2008 | автор: levik  |  Комментарии (3) »

Вопросики в MySQL

в Mysql вопросы  вместо текста? Знакомо?

Иногда при работе с MySql вместо ожидаемого текста, мы получаем в ответ что-то вроде “??? ?? ?????? ???…” Интуитивно можно предположить, что весь ВОПРОС (;) в кодировке MySQL. Что с этим делать, как бороться?

Для начала проверить, как хранятся данные в базе - зайти, к примеру, phpmyadmin-ом. Иногда из-за несоблюдения кодировки при импорте вопросики уже лежат в базе. В этом случае либо импортировать (если есть откуда) заново, либо… с нуля. :( При импорте следует указать кодировку, соответствующую файлу импорта. Естественно, если данные хранятся в базе вопросами - ничего другого мы и не получим.

Если же в базе данные хранятся “как надо”, а проблема появляется при выводе, обычно помогает незамысловатый запрос “Set names cp1251″ - сразу после подключения к базе. (вместо cp1251, следует указать нужную кодировку - с учетом русского языка - возможно UTF8)

У меня после такой операции вместо знаков вопроса  отобразился “нормальный” текст.

Опубликовано Июнь 20, 2008 | автор: levik  |  Нет комментариев »

Javascript - загрузка скрытых картинок - preload images

Загрузка изображений при помощи javascript - часто используется для смены картинок, чтобы после загрузки основной части страницы не “расстраивать” пользователя временнОй задержкой, требующейся для загрузки картинки.
<script type="text/javascript" language="javascript">
//загрузка изображений (preload images)
var pictures = new Array('pic1.jpg','pic2.jpg','pic3.jpg');
for (i=1;i<pictures.length; i++) {
t = new Image();
t.src = pictures[i];
}
</script>

Опубликовано Июнь 13, 2008 | автор: levik  |  Нет комментариев »

HTTP-заголовки ответа сервера

Кратенькая шпаргалка по наиболее распространенным HTTP-заголовкам ответа сервера:

3xx: Redirection (Перенаправление)

HTTP-301 Moved Permanently (Перемещено окончательно)
Сообщает браузеру-(Http-клиенту), что запрошенный документ окончательно перенесен и теперь располагается по новому URI, указанному в заголовке Location

HTTP/1.1 301 Moved Permanently
Location: http://www.site.ru/main_page.html

301 редирект в htaccess:
Redirect 301 / http://www.301-redirect.ed/new-page.htm
Redirect 301 /old-page.htm http://www.301-redirect.ed/new-page.htm
или
RedirectPermanent / http://www.301-redirect.ed/

301 редирект с использованием RewriteRule
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite\.com
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=permanent,L]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]

301 редирект на php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.ru/newdir/newpage.htm");

302 Found (Найдено)
Документ временно доступен по другому URI указанному в заголовке Location. Такое перенаправление используется в PHP по умолчанию (при указании “Header(’Location:URI’);” без дополнительных параметров)

HTTP/1.1 302 Found
Location: http://www.site.ru/temporary_page.html

4xx: Client Error (Ошибка клиента)

400 Bad Request (Плохой запрос)
Синтаксическая ошибка в запросе
401 Unauthorized (Не авторизован)
Для доступа к URI требуется авторизация (заголовок “WWW-Authenticate”)
403 Forbidden (Запрещено)
Ограничения на сервере. Было бы неплохо сообщить, с чем связано.
404 Not Found (Не найдено)
По запрошенному адресу никто не проживает…
410 Gone (Удалён)
Адресат убыл в неизвестном направлении. Используется вместо 404, если документ раньше был.

5xx: Server Error (Ошибка сервера)

Ошибки 500+ возникают из-за неправильных настроек/операций на сервере.
500 Internal Server Error (Внутренняя ошибка сервера)
“Неопознанная” внутренняя ошибка. Если Вы как разработчик увидели 500 ошибку - проверьте .htaccess, разрешения на изменение конфигурационных переменных (время выполнения скрипта и т.д.)

501 Not Implemented (Не реализовано)
Моя твоя не понимает.

502 Bad Gateway (Плохой шлюз)
Ответ выдается, когда сервер выполняет функцию промежуточного звена..

504 Gateway Timeout (Шлюз не отвечает)
Промежуточный сервер не дождался ответа от следующего звена.

Ссылки: Все коды состояния на википедии и Протокол управления кофеваркой

UPD Справедливости ради, следует заметить, что существует кофеварка IMPRESSA F90 с кривым “официальным” подключением к интернет от фирмы Jura ( на сайте производителя - http://www.jura.ru/Service107_65.aspx)

upd2 сервис просмотра http заголовков (подмена UserAgent) http://www.bertal.ru/
http://www.be1.ru/stat/?url=http%3A%2F%2Fwww.searchengines.ru%2F

Опубликовано Июнь 5, 2008 | автор: levik  |  Нет комментариев »