среда, 22 апреля 2009 г.

1000 меньше чем за 3

Я уже писал я 300 уникальных посетителях в сутки по самому консервативному счетчику LiveInternet. Вчера уникальных посетителей было 1031.

Еще в начале апреля количество посетителей подбиралась к 1000 (6 апреля - 977, 7-го - 971), но "рубеж" был взят только вчера, хотя я надеялся, что это произойдет немного раньше. Но, почему-то, количество посетителей с 8-го апреля начало падать, сначала не очень быстро, потом падение ускорилось. Я это связываю с изменением алгоритмов выдачи Yandex'а, сайта, который "поставляет" большую часть посетителей. Самое дно было достигнуто в эту субботу 18 апреля - 502 посетителя, а в воскресенье начался стремительный рост.

Я уже получил больше 10 статей с момента опубликования формы для ввода новых отзывов, причем 5 из них от постоянного автора, который, точнее которая, помимо интересных текстов публикует изумительные фотографии.

Так же не обошлось без неинтересных статей рекламного характера, которые я публиковать не стал. Хотя ничего не имею против рекламы, которая должна органично включаться в статью, т.е. статья должна быть именно статьей, а не рекламным объявлением. И если автор пишет, что ему понравился отель, или экскурсия, и оставляет координаты экскурсовода, то я оставляю эту информацию, т.к. она может быть полезной для моих читателей, для которых, собственно, все и создавалось.

В общем, "рубеж" в 1000 посетителей достигнут менее чем за 3 месяца. Для привлечения большей аудитории надо добавлять новые разделы, например, новости или что-то в этом роде. Может быть у кого-нибудь будут интересные предложения, которые я смогу реализовать?

пятница, 10 апреля 2009 г.

Ajax как способ показа информации из БД на статических html-страницах

Страницы моего сайта - статический html, который создается на основе информации, хранящейся в БД на моем компьютере. Затем специальными скриптами я делаю html-страницы и выкладываю их на сервере. При таком способе нельзя оперативно показывать комментарии, которые посетители оставляют, после ознакомления со статьями.

Для отображения комментариев к статьям я решил воспользоваться технологией Ajax. А именно, в каждом html-документе создать div, и javascript-программой выводить в этом div'е комментарии, которые хранятся в БД на сервере, где и находится сайт.

Сначала я ознакомился с документацией по Ajax, сделал простейший скрипт, который работал только в IE, а ведь есть еще Opera, Firefox и т.д. И у всех браузеров свои особенности. Конечно, можно покопаться в интернете, изучить варианты для всех браузеров, установить у себя каждый из браузеров для отладки и т.д. Но мне нужно всего лишь добавить возможность отображения комментариев, а не изучать особенности интерпретации javascript браузерами!

Решение было найдено случайно, на каком-то из форумов кто-то писал про JsHttpRequest-библиотеку. Библиотека - это громко сказано, но решение, действительно стоящее.
Итак, что же из себя представляет JsHttpRequest - это 2 файла JsHttpRequest.js и JsHttpRequest.php, соответственно первый включаем в каждый html-документ, второй - в скрипт, который на сервере обрабатывает запросы.

Покажу на примере, как несложно пользоваться этим. Есть форма, состоящая из 2-х полей, при нажатии на Submit надо показать сумму значений в этих полях.

В text.html:
<html>
<script src="JsHttpRequest.js"></script>
<script type="text/javascript">
function cmnt(frm)
{
JsHttpRequest.query('/test.php',
{
'a1': document.getElementById('a1').value,
'a2': document.getElementById('a2').value,
},
function(result, errors)
{
if(result)
{
str = result["str"];
alert('Сумма: ' + str);
}
else
{
alert('Не удалось получить данные: ' + errors);
}
}
,false // do not disable caching
);
return true;
}
</script>
<form>
<input name="a1" id="a1" value="" type="text">
<input name="a2" id="a2" value="" type="text">
<input value="Отправить" type="button" onclick="cmnt();">
</form>
</html>

И test.php:
<?php
require_once "JsHttpRequest.php";
$JsHttpRequest =& new JsHttpRequest("windows-1251");

if($_REQUEST[a1] && $_REQUEST[a2])
{
$GLOBALS['_RESULT'] = array(
"str" => $_REQUEST[a1] + $_REQUEST[a2]
);
}
?>

Разумеется, с сервера получать сколь угодно много параметров, просто добавьте их в массив $GLOBALS['_RESULT'] в php-файле и обработку этих параметров в javascript.

воскресенье, 5 апреля 2009 г.

Добавление RSS

Для ускорения индексации сайта поисковиками мне порекомендовали добавить rss.
Для начала я попробовал воспользоваться библиотеками perl, предназначенными для этого. Но ни XML::Atom::SimpleFeed ни XML::RSS стабильно работать не желали. Да и инталляция через cpan для camelbox perl не проходила. Пришлось исходные тексты библиотек просто переписывать в директорию site/lib.
И тогда я решил написать все сам, знал бы насколько это окажется быстрее, по сравнению с возней с указанными выше библиотеками, вообще бы с теми библиотеками не связывался.
Ознакомившись со статьей "Как сделать RSS ленту за пять минут", я действительно за 5 минут сделал rss-ленту.
Осталась сущая малость - преобразовать текущую дату в нужный формат. Т.е. в формат Tue, 31 Mar 2009 23:29:48 +0300. Сделать стандартными средствами в Windows это не получается. В Unix-е без проблем, а в Windows - нельзя. Даже гуру из xpoint.ru не смогли помочь мне в этом. Решение пришлось находить самому, а именно, в запрос на получение данных из MySQL я добавил еще одно поле date_format(now(), "%a, %d %b %Y %H:%i:%S") dt_cur.
Теперь поисковые боты могут пользоваться моей rss-лентой.