<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Что такое</title>
		<link>http://chto-takoe.my1.ru/</link>
		<description></description>
		<lastBuildDate>Thu, 28 Feb 2013 19:32:11 GMT</lastBuildDate>
		<generator>uCoz Web-Service</generator>
		<atom:link href="https://chto-takoe.my1.ru/news/rss" rel="self" type="application/rss+xml" />
		
		<item>
			<title>Асинхронные запросы, ajax</title>
			<description>&amp;nbsp;&amp;nbsp;&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://chto-takoe.my1.ru/images/ajax.png&quot;&gt;&lt;/div&gt;&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Асинхронные запросы&lt;/strong&gt; - жутко звучащая формулировка, особенно для новичка в области программирования, позволяют освободить пользователя от мельтешащих обновлений страницы и реализуют работу с сайтом в пределах одной страницы, блоки которой обновляются в зависимости от действий пользователя. В общем-то на выходе всё прекрасно и уместно, правда &lt;strong&gt;осуществление данного механизма на сайте&lt;/strong&gt; не так проста, как думается. Давайте перейдем к рассмотрению базовых знаний необходимых для создания асинхронных запросов. Может даже кому-то станет потешно, но желательно понимание &lt;strong&gt;HTML&lt;/strong&gt; :), следом нужно ведать &lt;strong&gt;javascript&lt;/strong&gt;, после необходимы знания в &lt;strong&gt;php&lt;/strong&gt; и, (само собой) разумеется же &lt;strong&gt;MySQL&lt;/strong&gt;. С точки зрения программирования, план работы асинхронного запроса будет выглядеть следующим образом:&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;1. юзер на стран...</description>
			<content:encoded>&amp;nbsp;&amp;nbsp;&lt;div align=&quot;center&quot;&gt;&lt;img src=&quot;https://chto-takoe.my1.ru/images/ajax.png&quot;&gt;&lt;/div&gt;&lt;p align=&quot;justify&quot;&gt;&lt;strong&gt;Асинхронные запросы&lt;/strong&gt; - жутко звучащая формулировка, особенно для новичка в области программирования, позволяют освободить пользователя от мельтешащих обновлений страницы и реализуют работу с сайтом в пределах одной страницы, блоки которой обновляются в зависимости от действий пользователя. В общем-то на выходе всё прекрасно и уместно, правда &lt;strong&gt;осуществление данного механизма на сайте&lt;/strong&gt; не так проста, как думается. Давайте перейдем к рассмотрению базовых знаний необходимых для создания асинхронных запросов. Может даже кому-то станет потешно, но желательно понимание &lt;strong&gt;HTML&lt;/strong&gt; :), следом нужно ведать &lt;strong&gt;javascript&lt;/strong&gt;, после необходимы знания в &lt;strong&gt;php&lt;/strong&gt; и, (само собой) разумеется же &lt;strong&gt;MySQL&lt;/strong&gt;. С точки зрения программирования, план работы асинхронного запроса будет выглядеть следующим образом:&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;1. юзер на странице активирует нажатием какой-либо зрительный компонент, что в свою черед влечет к выполнению пункта 2;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;2. активирование &lt;strong&gt;визуального элемента сайта&lt;/strong&gt; приводит к &lt;strong&gt;вызову javascript функции&lt;/strong&gt; [ajax_request], в которой и происходит разновременный запрос к веб серверу;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;3. сервер, приняв задание, анализирует его, выполняет все необходимые действия и отдает отклик, &quot;Выкрикивая&quot; его с помощи функций echo или print;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;4. отзыв сервера приходит в [ajax_request] и происходит обработка ответа от веб сервера;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;5. спустя время, после обработки ответа, информация выводятся на экран используя атрибут .&lt;strong&gt;innerHTML dom элементов страницы.&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;Я обязан остеречь Вас&lt;/strong&gt; от реализации данного механизма&lt;strong&gt; для полной навигации по сайту&lt;/strong&gt;, этот вид навигации повлечет за собой неимение истории в браузере, что дико отрицательно будет воспринято 99% процентами пользователей, соответственно, этот приём и вообще асинхронные запросы вернее использовать в формах проверки данных, при поиске, или же в полях подсказок, а также в некоторых других случаях.&amp;nbsp;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Реализация функции ajax_request:&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;JAVASCRIPT&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;**************************************************************&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;function 
&lt;strong&gt;ajax_request&lt;/strong&gt;
()&lt;br&gt;{&lt;br&gt;&amp;nbsp; &amp;nbsp;// Вызов функции инициализации объекта XMLHttpRequest&lt;br&gt;&amp;nbsp; &amp;nbsp;// REQUEST&lt;br&gt;&amp;nbsp; &amp;nbsp;var request = CreateRequest();&lt;br&gt;&amp;nbsp; &amp;nbsp;//***************** запрос отправляется вручную.&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp;&amp;nbsp; USER_ID=1;&amp;nbsp;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp;message
=&quot;hello&quot;;&lt;br&gt;&amp;nbsp; &amp;nbsp;// URL для подключения&lt;br&gt;&amp;nbsp; &amp;nbsp;var url = &quot;agregator.php?task=ADD_MESSAGE&amp;amp;MSG=&quot; +message + &quot;&amp;amp;RECIEVER_ID=&quot;+USER_ID+&quot;&amp;amp;random=&quot; &amp;nbsp; &amp;nbsp; + Math.random(); // random (случайное число) - чтобы не было глюков с кешированием&lt;br&gt;&amp;nbsp; &amp;nbsp;request.open(&quot;GET&quot;, url, true);&lt;br&gt;&amp;nbsp; &amp;nbsp;request.onreadystatechange = updatePage;&lt;br&gt;&amp;nbsp; &amp;nbsp;request.send(null);&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;strong&gt;function updatePage()&lt;/strong&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; if (request.readyState == 4)&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (request.status == 200)&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;// Вызов функции обработки ответа и передача ей ответа&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;tmp=request.responseText;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; document.getElementById(&apos;MSG&apos;).innerHTML=tmp; // помещаем ответ сервера в эелемент MSG&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; delete request;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; alert(&quot;Сервер не ответил&quot;);&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp; &amp;nbsp;}&lt;br&gt;}&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt; &lt;strong&gt;function CreateRequest()&lt;/strong&gt;&lt;br&gt;{&lt;br&gt;&amp;nbsp; &amp;nbsp;request = new XMLHttpRequest();&lt;br&gt;&amp;nbsp; &amp;nbsp;try {&lt;br&gt;&amp;nbsp; &amp;nbsp;request = new XMLHttpRequest();&lt;br&gt;&amp;nbsp; &amp;nbsp;} catch (trymicrosoft) {&lt;br&gt;&amp;nbsp; &amp;nbsp;try {&lt;br&gt;&amp;nbsp; &amp;nbsp;request = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);&lt;br&gt;&amp;nbsp; &amp;nbsp;} catch (othermicrosoft) {&lt;br&gt;&amp;nbsp; &amp;nbsp;try {&lt;br&gt;&amp;nbsp; &amp;nbsp;request = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&lt;br&gt;&amp;nbsp; &amp;nbsp;} catch (failed) {&lt;br&gt;&amp;nbsp; &amp;nbsp;request = false;&lt;br&gt;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp; &amp;nbsp;}&lt;br&gt;&amp;nbsp; &amp;nbsp;} if (!request) { alert(&quot;Ошибка инициализации XMLHttpRequest! Возможно&amp;#92;n&quot; +&lt;br&gt;&amp;nbsp; &amp;nbsp;&quot;ваш браузер не поддерживает этот объект.&quot;);&lt;br&gt;&amp;nbsp; &amp;nbsp;}&lt;br&gt; return request;&lt;br&gt;}&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;****************************************************************&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;***PHP***&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;$task=$_GET[&apos;task&apos;];&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;switch ($task)&lt;br&gt; {&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;case &quot;&lt;/strong&gt;
ADD_MESSAGE
&lt;strong&gt;&quot;:&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$ID=$_GET[&apos;&lt;/strong&gt;
RECIEVER_ID
&lt;strong&gt;&apos;];&lt;br&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;$message=&lt;/strong&gt;&lt;strong&gt;$_GET[&apos;&lt;/strong&gt;

MSG
&lt;strong&gt;&apos;];&lt;/strong&gt;
&lt;strong&gt; &lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RecordMSG(
&lt;strong&gt;$message&lt;/strong&gt;
);&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo &quot;Сообщение записано!&quot;;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break;&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;}&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;*********&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;***HTML***&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;&lt;div id=&apos;&lt;/strong&gt;
MSG
&lt;strong&gt;&apos;&amp;gt;&lt;/div&amp;gt; &amp;nbsp;&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;В этом элементе появится ответ сервера.&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;strong&gt;**********&lt;br&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;</content:encoded>
			<link>https://chto-takoe.my1.ru/news/2013-02-28-21</link>
			<category>Интересные статьи по программированию</category>
			<dc:creator>Kamillorn</dc:creator>
			<guid>https://chto-takoe.my1.ru/news/2013-02-28-21</guid>
			<pubDate>Thu, 28 Feb 2013 19:32:11 GMT</pubDate>
		</item>
		<item>
			<title>Разделение кода и дизайна при разработке сайтов</title>
			<description>&lt;img src=&quot;https://chto-takoe.my1.ru/headd.png&quot;&gt;&lt;h2&gt;Вопрос &lt;strong&gt;разделения кода от дизайна&lt;/strong&gt;&lt;/h2&gt;&lt;div align=&quot;justify&quot;&gt;при проектировании и создании &lt;strong&gt;веб систем и сайтов&lt;/strong&gt;, на мой взгляд имеет очень важное значение для дальнейшей расширяемости и гибкости системы. Рассмотрим данный вопрос на конкретных примерах.&lt;/div&gt;&lt;h2&gt;
Допустим нам нужно создать форму регистрации пользователей сайта. Можно поступить тремя способами:
&lt;/h2&gt;&lt;div align=&quot;justify&quot;&gt;&lt;ol&gt;&lt;li&gt;
Создать &lt;strong&gt;php файл&lt;/strong&gt;, содержащий все необходимые замены и подстановки и сразу выводящий на экран результат работы, такой способ реализован&lt;strong&gt; в шаблонах веб движка джумла&lt;/strong&gt;.
&lt;/li&gt;&lt;li&gt;
Опять - таки &lt;strong&gt;php файл&lt;/strong&gt;, но уже самостоятельно генерирующий &lt;strong&gt;разметку страницы&lt;/strong&gt; и выводящий на экран результат.
&lt;/li&gt;&lt;li&gt;
&lt;strong&gt;Полностью разделить дизайн и код&lt;/strong&gt;, заполняющий этот дизайн (шаблон) информацией. Т.е. на выходе мы &lt;strong&gt;будем иметь 2 файла с четким разделением функционала&lt;/strong&gt;....</description>
			<content:encoded>&lt;img src=&quot;https://chto-takoe.my1.ru/headd.png&quot;&gt;&lt;h2&gt;Вопрос &lt;strong&gt;разделения кода от дизайна&lt;/strong&gt;&lt;/h2&gt;&lt;div align=&quot;justify&quot;&gt;при проектировании и создании &lt;strong&gt;веб систем и сайтов&lt;/strong&gt;, на мой взгляд имеет очень важное значение для дальнейшей расширяемости и гибкости системы. Рассмотрим данный вопрос на конкретных примерах.&lt;/div&gt;&lt;h2&gt;
Допустим нам нужно создать форму регистрации пользователей сайта. Можно поступить тремя способами:
&lt;/h2&gt;&lt;div align=&quot;justify&quot;&gt;&lt;ol&gt;&lt;li&gt;
Создать &lt;strong&gt;php файл&lt;/strong&gt;, содержащий все необходимые замены и подстановки и сразу выводящий на экран результат работы, такой способ реализован&lt;strong&gt; в шаблонах веб движка джумла&lt;/strong&gt;.
&lt;/li&gt;&lt;li&gt;
Опять - таки &lt;strong&gt;php файл&lt;/strong&gt;, но уже самостоятельно генерирующий &lt;strong&gt;разметку страницы&lt;/strong&gt; и выводящий на экран результат.
&lt;/li&gt;&lt;li&gt;
&lt;strong&gt;Полностью разделить дизайн и код&lt;/strong&gt;, заполняющий этот дизайн (шаблон) информацией. Т.е. на выходе мы &lt;strong&gt;будем иметь 2 файла с четким разделением функционала&lt;/strong&gt;.
&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Поговорим о плюсах и минусах рассмотренных приемов. В первых двух случаях реализации механизма &lt;strong&gt;для сайта&lt;/strong&gt; мы будем редактировать &lt;strong&gt;только один php файл&lt;/strong&gt;, но мы потеряем независимость кода от визуальной ( дизайн) реализации проекта, в принципе это не вызовет страшных проблем, если&lt;strong&gt; у нас в проекте буде 2 - 5 форм&lt;/strong&gt; добавлеия или редактирования материалов. Но если рассмотреть к примеру &lt;strong&gt;проект социальной сети &lt;/strong&gt;в котором может быть порядка сотни интерфейсных элементов реализующих манипуляции с данными пользователя, то тут мы столкнемся с серьезными проблемами при попытке &lt;strong&gt;сменить дизайн&lt;/strong&gt; и &lt;strong&gt;разметку в блоках кода&lt;/strong&gt; связанного, &lt;strong&gt;склеенного с дизайном&lt;/strong&gt;. Но если применить третий вариант, мы получим красивое решение, позволяющее менять весь дизайн и разметку системы, не затрагивая функциональные части.&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Спасибо! Жду комментариев!&lt;/div&gt;</content:encoded>
			<link>https://chto-takoe.my1.ru/news/2013-02-26-20</link>
			<category>Интересные статьи по программированию</category>
			<dc:creator>Kamillorn</dc:creator>
			<guid>https://chto-takoe.my1.ru/news/2013-02-26-20</guid>
			<pubDate>Tue, 26 Feb 2013 18:49:18 GMT</pubDate>
		</item>
		<item>
			<title>Как работать на бирже статей?</title>
			<description>&lt;h2&gt;Как работать на бирже статей?&lt;/h2&gt;&lt;strong&gt;Биржа статей &lt;/strong&gt;- это специализированная площадка, позволяющая размещать &lt;strong&gt;свои статьи&lt;/strong&gt; на других &lt;strong&gt;сайтах&lt;/strong&gt; участников данной системы. За возможность размещения &lt;strong&gt;статей&lt;/strong&gt; , рекламодатели платят деньги, а вебмастера, соответственно получаюд доход со &lt;strong&gt;своих сайтов&lt;/strong&gt;. Вы можете задаться вопросом: акому это выгодно? Ответ прост: это выгодно всем и площадке автоматического размещения в том числе. Ведь данный метод работы позволяет сэкономить кучу времени на &lt;strong&gt;размещение статей&lt;/strong&gt;.</description>
			<content:encoded>&lt;h2&gt;Как работать на бирже статей?&lt;/h2&gt;&lt;strong&gt;Биржа статей &lt;/strong&gt;- это специализированная площадка, позволяющая размещать &lt;strong&gt;свои статьи&lt;/strong&gt; на других &lt;strong&gt;сайтах&lt;/strong&gt; участников данной системы. За возможность размещения &lt;strong&gt;статей&lt;/strong&gt; , рекламодатели платят деньги, а вебмастера, соответственно получаюд доход со &lt;strong&gt;своих сайтов&lt;/strong&gt;. Вы можете задаться вопросом: акому это выгодно? Ответ прост: это выгодно всем и площадке автоматического размещения в том числе. Ведь данный метод работы позволяет сэкономить кучу времени на &lt;strong&gt;размещение статей&lt;/strong&gt;.</content:encoded>
			<link>https://chto-takoe.my1.ru/news/2013-02-21-18</link>
			<category>Тесксты от Автора</category>
			<dc:creator>Avtor</dc:creator>
			<guid>https://chto-takoe.my1.ru/news/2013-02-21-18</guid>
			<pubDate>Thu, 21 Feb 2013 19:46:54 GMT</pubDate>
		</item>
	</channel>
</rss>