AJAX – быстрый старт для новичков!

Автор: admin  /  Рубрика: cms, PHP

Попробую быстро и наглядно показать как и где использовать технологию AJAX.

Для начала коротко расскажу про аякс: это полусерверный, полуклиентский язык, а точнее асинхронный. Часть его выполняется на клиенте, часть на сервере, в итоге без перезагрузки страницы мы можем обновлять информацию на сайте, например подгружая ее из базы данных mySQL, причем даже с другого сервера!

Как это работает спросите?

Чтобы получить данные на сервере, XMLHttpRequest предоставляет два метода:

  • open – создает соединение
  • send – отправляет запрос на сервер

Данные возвращенные сервером извлекаем из атрибутов объекта XMLHttpRequest:

  • ResponseXml для файлов XML
  • ResponseText для обычного текста.

Важно: объект XMLHttpRequest долен быть создан для каждого нового файла для загрузки!!

Чтобы узнать о процессе извлечения и загрузки данных с сервера существует атрибут readyState объекта XMLHttpRequest, который возвращает следущие параметры от 0 до 4, причем нам важен только последний:

 0: не инициализирован.
 1: связь.
 2: запрос получен.
 3: ответ в процессе.
 4: закончено.

Рассмотрим подробнее атрибуты Объекта XMLHttpRequest:

readyState Код последовательно изменяет свое значение от 0 до 4, где 4 означает “готов”.
status 200 нормально,   404 – страница не найдена.
responseText содержит загруженные данные в виде строки символов.
responseXml содержит загруженные данные в виде файла XML
onreadystatechange обычно принимает в качестве значения функцию, когда readystatechange событие будет запущено.

ну и собственно методы:

open (mode, url, boolean)  mode: тип запроса, GET или POST
url:  расположение файла, вместе с путем.
boolean: true (асинхронный) / false (синхронный).
опционально:    Логин и пароль могут быть добавлены к аргументам.
send (“string”)  null  для метода GET.

Ну а теперь приведем пример:    (ну наконецто :) ))

 if (window.XMLHttpRequest) // Объект текущего окна
{
   xhr = new XMLHttpRequest(); // Firefox, Safari, ...
}
elseif (window.ActiveXObject)  // ActiveX версия
 {
   xhr = new ActiveXObject("Microsoft.XMLHTTP");  Internet Explorer
 }

инициировали, теперь ждем ответа

if (xhr.readyState == 4)
{
   // Received, OK
} else
{
  // Wait...
}

ну а дальше отправляем запрос:

xhr.open('GET', 'http://www.symple.ru/sitemap.xml', true);
xhr.send(null);

Все пример сразу и с HTML кодом:

<html>
<head>
<script>
function submitForm()
{
    var xhr;
    try {  xhr = new ActiveXObject('Msxml2.XMLHTTP');   }
    catch (e)
    {
        try {   xhr = new ActiveXObject('Microsoft.XMLHTTP');    }
        catch (e2)
        {
          try {  xhr = new XMLHttpRequest();     }
          catch (e3) {  xhr = false;   }
        }
     }

    xhr.onreadystatechange  = function()
    {
         if(xhr.readyState  == 4)
         {
              if(xhr.status  == 200)
                  document.ajax.dyn="Received:"  + xhr.responseText;
              else
                 document.ajax.dyn="Error code " + xhr.status;
         }
    }; 

   xhr.open(GET, "data.txt",  true);
   xhr.send(null);
}
</script>
</head>

<body>
    <FORM method="POST" name="ajax" action="">
         <INPUT type="BUTTON" value="отправить"  ONCLICK="submitForm()">
         <INPUT type="text" name="dyn"  value="">
    </FORM>
 </body>
 </html>

скачать ПРИМЕР можно здесь:  demo-symple.ru-ajax-post

жду комментариев!

Обзор CMS без баз MySQL (недостатки и преимущества)

Автор: admin  /  Рубрика: cms, Новости сайта

В данном выпуске мы рассмотрим CMS не использущие базы данных (MySQL) и работающие на обычных текстовых файлах. Спрашивается: зачем нам нужны такие cms? Ведь MySQL именно для этого и был создан, он и работает быстрее (при больших объемах данных) и есть много уже готовых решений для работы с базами и т д.
Ответ прост:
во-первых: на некоторых хостингах все еще нет баз данных, либо стоимость хостинга с ними значительно дороже чем без них, на некоторых хостингах дают ограниченное количество баз данных, а то и одну, а лепить все в одну (используя префиксы) иногда не очень удобно и т. д. Во-вторых: перенос таких сайтов проще простого, нужно всего лишь скопировать файлы и все, не нужно никакой установки, настройки подключения к базам данных и т д, да и ту же базу данных нужно предварительно создать, а это займет как минимум лишнюю минуту, а то десять. ну и в третьих, если сайт маленький (до 500 страниц) то сайты на файлах будут работать и загружаться быстрее, чем сайт на базе данных.
Это основные преимущества, а их недостатков данных cms можно отнести то, что если сайт разростется до крупных размеров то никакая cms на файлах уже не спасет и придется переходить на полноценную cms, благо что есть такие модули для перехода.
Какие именно cms мы рассмотрим в следующей статье о CMS без баз.
Продолжение следует…

Обзор мировых CMS

Автор: admin  /  Рубрика: cms

Начну пожалуй с перечисления тех cms которые первые пришли в голову: Joomla, Drupal, Mambo, WordPress… Не секрет что в первую очередь вспомнил бесплатные cms, ведь именно они в мире завоевали популярность и по функциональности не уступают платным аналогам, а иногда даже превосходят.
Взять туже Joomla – очень многофункциональный движок, позволяет создавать сайты любой сложности от пятистраничной визитки до полнофункционального городского портала!!
Тоже самое можно сказать и про Drupal, хоть и расширений у него не так много как у джумлы, но на нем можно также сделать абсолютно любой сайт. Блоговый движок WordPress – в первую очередь предназначен для создания личных интернет дневников (блогов), но это не мешает на нем создавать сайты других видов, я встречал на нем крупные порталы с тысячами страниц.
Заслуживает внимания и CMS Made Simple, она также бесплатная, с открытым исходным кодом и имеет неограниченные возможности для создания сайтов, не грузит сервер, шаблоны под нее легко делаются, есть готовые решения для интернет магазинов.

Продолжение следует…