<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4966932842068463077</id><updated>2024-09-14T08:30:35.772+03:00</updated><title type='text'>Освоение AJAX на практике</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>7</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-4782692437009805247</id><published>2012-09-18T14:57:00.000+03:00</published><updated>2012-09-18T15:09:31.179+03:00</updated><title type='text'>Задача 1. Шаг третий. Решение</title><content type='html'>
&lt;a href=&quot;http://depositfiles.com/files/2mir5iynt&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;(Скачать решение)&lt;/a&gt;
&lt;br/&gt;
&lt;p&gt;Код валидации validation.js:&lt;/p&gt;

&lt;pre class=&quot;brush: javascript; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;window.onload = initPage; 

function initPage() {
  document.getElementById(&amp;quot;field_login&amp;quot;).onblur = requestValidation; 
  document.getElementById(&amp;quot;field_password&amp;quot;).onblur = checkRegistrationAllowed; 
  document.getElementById(&amp;quot;field_name&amp;quot;).onblur = checkRegistrationAllowed; 
  document.getElementById(&amp;quot;field_surname&amp;quot;).onblur = checkRegistrationAllowed; 
 
  isLoginOK = (document.getElementById(&amp;quot;field_login&amp;quot;).value != &amp;quot;&amp;quot;);  
  checkRegistrationAllowed(); 
}

function requestValidation() {
  if (document.getElementById(&amp;quot;field_login&amp;quot;).value == &#39;&#39;) return; 
  isLoginOK = false;
  checkRegistrationAllowed(); 
  request = createRequest(); 
  if (request == null) {
    alert(&amp;quot;Unable to create request!&amp;quot;); 
  }
  else {
    document.getElementById(&amp;quot;field_login&amp;quot;).className = &amp;quot;processing&amp;quot;; 
    request.onreadystatechange = handleValidationResponse;
    var userName = escape(document.getElementById(&amp;quot;field_login&amp;quot;).value); 
    var url = &amp;quot;checkLogin.php?field_login=&amp;quot; + userName;
    request.open(&amp;quot;GET&amp;quot;, url, true); 
    request.send(null);
  }
}

function handleValidationResponse() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      if (request.responseText == &amp;quot;ok&amp;quot;) {
        document.getElementById(&amp;quot;label_login&amp;quot;).className = &amp;quot;&amp;quot;; 
        document.getElementById(&amp;quot;field_login&amp;quot;).className = &amp;quot;approved&amp;quot;; 
        isLoginOK = true; 
        checkRegistrationAllowed(); 
      }
      else {
        document.getElementById(&amp;quot;label_login&amp;quot;).className = &amp;quot;highlighted&amp;quot;; 
        document.getElementById(&amp;quot;field_login&amp;quot;).className = &amp;quot;denied&amp;quot;; 
      }
    }
  }
}

function checkRegistrationAllowed() {
  isPassOK = (document.getElementById(&amp;quot;field_password&amp;quot;).value != &amp;quot;&amp;quot;);
  isNameOK = (document.getElementById(&amp;quot;field_name&amp;quot;).value != &amp;quot;&amp;quot;);
  isSurnameOK = (document.getElementById(&amp;quot;field_surname&amp;quot;).value != &amp;quot;&amp;quot;);  
  
  if (isLoginOK &amp;amp;&amp;amp; isPassOK &amp;amp;&amp;amp; isNameOK &amp;amp;&amp;amp; isSurnameOK) {
    document.getElementById(&amp;quot;register&amp;quot;).disabled = false; 
  }
  else {
    document.getElementById(&amp;quot;register&amp;quot;).disabled = true; 
  }
}&lt;/pre&gt;

&lt;p&gt;Код сервера checkLogin.php:&lt;/p&gt;
&lt;pre class=&quot;brush: php; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;&amp;lt;?php

$takenLogins = array (&#39;andrew&#39;, &#39;alena&#39;);

sleep(2);

if (!in_array( $_REQUEST[&#39;field_login&#39;], $takenLogins )) {
 echo &#39;ok&#39;;
} else {
 echo &#39;bad&#39;;
}

?&amp;gt;

&lt;/pre&gt;


&lt;p&gt;И код описания стилей (default.css) выглядит так:&lt;/p&gt;
&lt;pre class=&quot;brush: css; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;label {
  float: left; 
  text-align: right; 
  width: 100px; 
  margin-right: 10px; 
}

input[type=submit] {
  margin-left: 110px; 
}

input[type=text] {
  width: 150px; 
  height: 14px; 
}

li {
  list-style: none;
  margin-top: 5px; 
}

.highlighted {
  color: red; 
}

#field_login {
  background: #fff url(&#39;../images/status.gif&#39;) 130px 0 no-repeat; 
}
#field_login.processing {
  background-position: 134px -19px; 
}
#field_login.approved {
  background-position: 134px -35px; 
}
#field_login.denied {
  background-color: #FF8282;  
  background-position: 134px -52px; 
}&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/4782692437009805247/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_18.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4782692437009805247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4782692437009805247'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_18.html' title='Задача 1. Шаг третий. Решение'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-8788985300185144392</id><published>2012-09-17T23:58:00.001+03:00</published><updated>2012-09-18T15:04:31.066+03:00</updated><title type='text'>Задача 1. Шаг третий. Применение AJAX&#39;a для проверки логина</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Наконец-то переходим к самому интересному - в этой части задачи нужно применить технологию AJAX.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Задача&lt;/b&gt;: сделать асинхронную проверку логина, вводимого пользователем. Проверка не проходит, если логин равняется любому из имен: alena, andrew. Статус проверки отображается в правом углу поля. Всего выделяются 4 статуса: пустое поле, проверка в процессе, проверка прошла успешно, проверка не прошла. Картинки для всех статусов находятся в исходных файлах к заданию.&lt;br /&gt;
Общее описание шагов работы приложения:&lt;br /&gt;
1) Пользователь ввел логин в поле логина и перешел к вводу других данных.&lt;br /&gt;
2) Посылается запрос к серверу на проверку введенного логина.&lt;br /&gt;
3) Сервер проверяет введенный логин на равенство &#39;alena&#39; или &#39;andrew&#39; и при равенстве возвращает статус &lt;i&gt;bad&lt;/i&gt;. Иначе &lt;i&gt;ok&lt;/i&gt;. Также сервер делает 2-х секундную задержку (имитация выполнения длительной операции).&lt;br /&gt;
4) Клиентская часть получает ответ от сервера и отображает соответствующую иконку статуса в поле ввода логина.&lt;br /&gt;
5) Кнопка регистрации изначально отключена. Она активируется только когда все поля заполнены и логин прошел проверку.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Исходные данные&lt;/b&gt;&lt;br /&gt;
&lt;i&gt;С предыдущих задач:&lt;/i&gt;&lt;br /&gt;
1. HTML-страница с формой регистрации.&lt;br /&gt;
2. CSS для страницы регистрации.&lt;br /&gt;
3. PHP скрипт, принимающий данные с заполненной формы.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Новые&lt;/i&gt;&lt;br /&gt;
4. Картинка gif с изображениями статуса валидации.&lt;br /&gt;
&lt;a href=&quot;http://depositfiles.com/files/uwda8lrxq&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;(Скачать исходные файлы)&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Результирующие файлы&lt;/b&gt;&lt;br /&gt;
1. Файл с клиентским JavaScript кодом.&lt;br /&gt;
2. Файл с серверным PHP кодом.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/8788985300185144392/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1-ajaxa.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/8788985300185144392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/8788985300185144392'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1-ajaxa.html' title='Задача 1. Шаг третий. Применение AJAX&#39;a для проверки логина'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-6172377279411686911</id><published>2012-09-16T18:32:00.000+03:00</published><updated>2012-09-16T18:33:04.848+03:00</updated><title type='text'>Задача 1. Шаг второй. (Решение)</title><content type='html'>default.css дополнится всего одной подстройкой:

&lt;pre class=&quot;brush: css; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;.highlighted {
  color: red; 
}&lt;/pre&gt;

Код сервера у меня получился таким (register.php):

&lt;pre class=&quot;brush: php; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt; 
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Registration form&amp;lt;/title&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/default.css&amp;quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
  &amp;lt;?php

  $success = true; 
  $name_class = &#39;&#39;; 
  if (empty($_REQUEST[&#39;field_name&#39;])) {
    $name_class = &#39;class=&amp;quot;highlighted&amp;quot;&#39;;
    $success = false; 
  }
  $surname_class = &#39;&#39;; 
  if (empty($_REQUEST[&#39;field_surname&#39;])) {
    $surname_class = &#39;class=&amp;quot;highlighted&amp;quot;&#39;; 
    $success = false; 
  }
  $login_class = &#39;&#39;; 
  if (empty($_REQUEST[&#39;field_login&#39;])) {
    $login_class = &#39;class=&amp;quot;highlighted&amp;quot;&#39;; 
    $success = false; 
  }
  $password_class = &#39;&#39;; 
  if (empty($_REQUEST[&#39;field_password&#39;])) {
    $password_class = &#39;class=&amp;quot;highlighted&amp;quot;&#39;; 
    $success = false; 
  }

  if ($success) {
?&amp;gt;
  &amp;lt;p&amp;gt;Регистрация прошла успешно!&amp;lt;/p&amp;gt;
  &amp;lt;?php } else { ?&amp;gt;  
    &amp;lt;form action=&amp;quot;/register.php&amp;quot; method=&amp;quot;POST&amp;quot;&amp;gt;
    &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_name&amp;quot; &amp;lt;?php echo $name_class; ?&amp;gt; &amp;gt;Имя&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_name&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_name&amp;quot; value=&amp;quot;&amp;lt;?php echo $_REQUEST[&#39;field_name&#39;]; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_surname&amp;quot; &amp;lt;?php echo $surname_class; ?&amp;gt; &amp;gt;Фамилия&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_surname&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_surname&amp;quot; value=&amp;quot;&amp;lt;?php echo $_REQUEST[&#39;field_surname&#39;]; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_login&amp;quot; &amp;lt;?php echo $login_class; ?&amp;gt;&amp;gt;Логин&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_login&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_login&amp;quot; value=&amp;quot;&amp;lt;?php echo $_REQUEST[&#39;field_login&#39;]; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_password&amp;quot; &amp;lt;?php echo $password_class; ?&amp;gt; &amp;gt;Пароль&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_password&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;field_password&amp;quot; value =&amp;quot;&amp;lt;?php echo $_REQUEST[&#39;field_password&#39;]; ?&amp;gt;&amp;quot;&amp;gt;&amp;lt;/input&amp;gt; &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;input id=&amp;quot;register&amp;quot; type=&amp;quot;submit&amp;quot; value=&amp;quot;Регистрация&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
    &amp;lt;/form&amp;gt;
    
  &amp;lt;?php } ?&amp;gt;
  
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/6172377279411686911/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_7825.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/6172377279411686911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/6172377279411686911'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_7825.html' title='Задача 1. Шаг второй. (Решение)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-7420706786507802485</id><published>2012-09-16T17:48:00.001+03:00</published><updated>2012-09-16T18:28:43.264+03:00</updated><title type='text'>Задача 1. Шаг второй. Написание кода сервера.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Написать код для сервера, принимающего данные с формы, спроектированной на предыдущем шаге.&lt;br /&gt;
&lt;br /&gt;
Проверить все ли поля заполнены. Если все - вывести текст про успешность регистрации. Иначе опять вывести форму регистрации, при этом названия незаполненных полей сделать красными. Все введенные ранее данные сохранить в своих полях.&lt;br /&gt;
&lt;br /&gt;
Предполагаемые результирующие файлы:&lt;br /&gt;
1-2) Дополненные файлы с шага 1.&lt;br /&gt;
&lt;b&gt;3) register.php&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/7420706786507802485/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_16.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/7420706786507802485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/7420706786507802485'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1_16.html' title='Задача 1. Шаг второй. Написание кода сервера.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-2519193104189053365</id><published>2012-09-16T14:33:00.001+03:00</published><updated>2012-09-16T18:27:50.293+03:00</updated><title type='text'>Задача 1. Шаг первый. (Решение)</title><content type='html'>Код registration.html:
&lt;br /&gt;
&lt;pre class=&quot;brush: html; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt; 
&amp;lt;html&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;Форма регистрации&amp;lt;/title&amp;gt;
    &amp;lt;meta charset=&amp;quot;UTF-8&amp;quot; /&amp;gt;
    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;css/default.css&amp;quot; /&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;form action=&amp;quot;/register.php&amp;quot; method=&amp;quot;POST&amp;quot;&amp;gt;
    &amp;lt;ul&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_name&amp;quot;&amp;gt;Имя&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_name&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_name&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_surname&amp;quot;&amp;gt;Фамилия&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_surname&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_surname&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_login&amp;quot;&amp;gt;Логин&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_login&amp;quot; type=&amp;quot;text&amp;quot; name=&amp;quot;field_login&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;label for=&amp;quot;field_password&amp;quot;&amp;gt;Пароль&amp;lt;/label&amp;gt;
    &amp;lt;input id=&amp;quot;field_password&amp;quot; type=&amp;quot;password&amp;quot; name=&amp;quot;field_password&amp;quot;&amp;gt;&amp;lt;/input&amp;gt; &amp;lt;/li&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Регистрация&amp;quot;&amp;gt;&amp;lt;/input&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
    &amp;lt;/form&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;
Код css/default.css:
&lt;br /&gt;
&lt;pre class=&quot;brush: css; gutter: false; toolbar: false; wrap-lines: false&quot;&gt;label {
  float: left; 
  text-align: right; 
  width: 100px; 
  margin-right: 10px; 
}

input[type=submit] {
  margin-left: 110px; 
}

li {
  list-style: none;
  margin-top: 5px; 
}&lt;/pre&gt;
Вот что получилось:
&lt;br /&gt;
&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSgWjcu64ei1PGydqxX-FWB3j3EE95z4s67myvXLdRkJ7wEaNXEgCrJ4pcEeD0699v5WcejRsGc3m8gh3KpvhzLYTHMQv48XYNvgsfjrnsr22zW9KZc_dSFrTbvEBpmU7pezd8uq3o8o4/s320/task1part1.PNG&quot; width=&quot;320&quot; /&gt;</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/2519193104189053365/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1-1.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/2519193104189053365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/2519193104189053365'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1-1.html' title='Задача 1. Шаг первый. (Решение)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSgWjcu64ei1PGydqxX-FWB3j3EE95z4s67myvXLdRkJ7wEaNXEgCrJ4pcEeD0699v5WcejRsGc3m8gh3KpvhzLYTHMQv48XYNvgsfjrnsr22zW9KZc_dSFrTbvEBpmU7pezd8uq3o8o4/s72-c/task1part1.PNG" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-4323275108641447840</id><published>2012-09-16T14:03:00.004+03:00</published><updated>2012-09-16T18:00:36.963+03:00</updated><title type='text'>Задача 1. Шаг первый. Создание макета формы регистрации (HTML/CSS)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Задача 1: Сделать форму регистрации с поддержкой асинхронных проверок.&lt;br /&gt;
&lt;br /&gt;
Шаг первый: Заготовить простую форму.&lt;br /&gt;
&lt;i&gt;Поля формы:&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
1) Имя&lt;br /&gt;
2) Фамилия&lt;br /&gt;
3) Логин&lt;br /&gt;
4) Пароль&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Кнопка:&amp;nbsp;&lt;/i&gt;&lt;br /&gt;
1) Регистрация.&lt;br /&gt;
&lt;br /&gt;
Предполагаемые результирующие файлы:&lt;br /&gt;
1) registration.html&lt;br /&gt;
2) default.css&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/4323275108641447840/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4323275108641447840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4323275108641447840'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/1.html' title='Задача 1. Шаг первый. Создание макета формы регистрации (HTML/CSS)'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4966932842068463077.post-4933714178102514584</id><published>2012-09-16T13:55:00.001+03:00</published><updated>2012-09-16T16:23:49.007+03:00</updated><title type='text'>Освоение AJAX на практике. Что здесь будет</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
В двух словах опишу что будет из себя представлять этот проект. Сразу отмечу, что делается он почти исключительно для себя. По крайней мере на&amp;nbsp;ближайшее&amp;nbsp;время. На будущее будет видно, так как есть хорошая задумка.&lt;br /&gt;
&lt;br /&gt;
Давно заметил, что обучаться чему-то намного эффективнее, если сразу же погружаться в практику. Не читать книгу пару дней, а потом пытаться что-то сделать, когда забыл уже большую часть прочитанного. А ставить задачу, пытаться ее решить на основе накопленного опыта, конечно же наталкиваться на тупики в виде отсутствия нужных знаний/опыта, и уже тут начинать читать книги, статьи. В этом случае чтение будет направленным и знания будут впитываться намного быстрее. После решения нескольких однотипных задач можно уже браться за поглощение большого куска теоретических знаний. Запоминаться теперь все будет в разы лучше, так как есть твердая опора.&lt;br /&gt;
&lt;br /&gt;
Этот проект нацелен на то, чтобы собрать большое количество практических заданий, на которых можно будет практиковаться. В перспективе я хочу все это связать с принципом &quot;осознанной практики&quot; (deliberate practice). Но пока что не буду заморачиваться этим, пока не соберу хотя бы сотню задач. Заодно проверю как работает система, чтобы смело предлагать ее другим, когда она покажет свою эффективность.&lt;br /&gt;
&lt;br /&gt;
Пока что все задачи будут посвящены AJAX&#39;y, и всему, что с ним связано: Javascript с фреймворками, XHTML, CSS. В качестве серверного скриптового языка - PHP.&amp;nbsp;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://mastering-ajax.blogspot.com/feeds/4933714178102514584/comments/default' title='Комментарии к сообщению'/><link rel='replies' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/ajax.html#comment-form' title='Комментарии: 0'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4933714178102514584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4966932842068463077/posts/default/4933714178102514584'/><link rel='alternate' type='text/html' href='http://mastering-ajax.blogspot.com/2012/09/ajax.html' title='Освоение AJAX на практике. Что здесь будет'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/13637361766971255365</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>