Как я уже говорил, начал писать новый крупный проект, но перед этим решил потренироваться на малом стартапе, который я представлю в ближайшее время. Задачей было понять структуру MVC фреймворка CodeIgniter, а также выучить хотя бы азы JavaScript и AJAX.
Изначально мне казалось, что изучение JS будет очень сложной и муторной задачей. Как оказалось нет, просто в моем понимание, наверное изначально сложился стереотип о том, что JS это что-то неуклюжее и корявое. Все те кто собирается выучить его в ближайшее время советую, почитать статейки для начинающих, которых кучу в интернете, а если есть опыт кодинга в других языках, то вообще классно, к примеру JS, во многом похож на PHP со смесью Basic. Я так его представляю
Следующей целью был AJAX, о котором как раз таки я хотел бы сегодня поговорить. В первую очередь, для меня было вникнуть в него как можно скорее и использовать без особых затрудней. Но так как, если писать на чистом JS, то получаеться громадный код, который к томуже не кросбраузерный, т.е с IE могут быть проблемы. Поэтому решил снова прибегнуть к помощи сторонних библиотек. Такой оказалась .
Она предназначена не только для выполнения асинхронных запросов, но также делает общение с JS намного приятнее и удобнее. Что я имел введу вы можете прочесть в .
Нас сейчас в первую очередь интересует AJAX. И так одной библиотекой это дело конечно же не обойдется, для этого я написал отдельную функцию для выполнения запросов в одно касание.
Листинг данной функции:
//supraz='main';
var loado='';
$(supraz).hide();
loado='loading';
$(loado).show();
var doo="";
if (onform)
{
for (var i = 0; i < $(v).length; i++) {
if ($(v).elements[i].name!='')
if ($(v).elements[i].type!='checkbox')
{doo = doo + $(v).elements[i].name + "=" + $(v).elements[i].value + "&";}
else
{doo = doo + $(v).elements[i].name + "=" + $(v).elements[i].checked + "&";}
}
}
else
{
doo=v;
}
new Ajax.Updater(supraz, urlto,
{ method: 'post',
parameters: "?"+doo,
onComplete: function () {
$(loado).hide();
$(supraz).show();
}
}
);
}
Вызов функции происходит таким образом:
Так же нам понадобиться отдельный div для вывода картинки загрузки:

Картинки загрузки вы можете выбрать и перекрасить под себя на
Ну и естественно нужно создать div для вывода результатов и указать ему произвольный id. К примеру:
Последний штрих, добавьте ссылку на скрипт Prototype в head.
Пример страницы с запросом:
<head>
<title>AJAX</title>
<script type="text/javascript" src="/prototype.js"></script>
<script type="text/javascript" src="/nashifunkcii.js"></script>
</head>
<body>
<div id="main">Нажми на ссылку ниже, чтобы увидеть результат!</div>
<div id="loading" style="display: none;text-align:center;"><img src="/images/ajax_load.gif"></div>
<a href="#" onClick="changeMain('text=YES&show=true',false,'/view.php','main'); return false;">НУКА!</a>
</body>
</html>
Все теперь можно запускать и тестировать. Согласитесь не сложно. Конечно это малая часть того, что можно реализовать, но для моего проекта этого вполне хватило.
Сегодня вы можете стать первыми бета тестерами моего маленького стартапа: . Сразу скажу Whois работает не стабильно.
Рассказывать о его предназначение и функциях не стану, думаю вы и так поймете. Подробнее уже в релизе.
Немного ссылок по теме:
- картинки загрузки


в
Мне нравится для Ajax использовать jQuery
в
Хорошая статья! Давно ждал новых постов на твоем блоге!
в
в
Спасибо за небольшой ликбез по Ajax.=)
в
Я сам только начал разбираться в Ajax. Что-то мне он тяжело дается.
в
Для того чтоб начать изучать JS, надо знать еще какой нибудь язык?
в
Если чесно ничего не поняла….
в
Seoart , русский для начала, ну а серьезно – то хтмл нужно знать обязательно. Хотя яваскрипты можно качать из инета тоннами.
в
А что посоветуешь вообще новичку почитать? Ох и тяжело он мне даётся, всюду статьи, которые с 0 не обучают, например эту статью я вообще не понял.
в
Посоветуй литературу для ламера в изучении Ajax, плз! Я тоже 0 в Ajax! Заранее благодарен!
в
Блин, вообще сложная вещь. Пока мало что понимаю.
в
Ajax-приложения могут повысить удобство использования любого Web-приложения, на мой взгляд JS и Ajax просто не сравнимы
в
С ява и аяксом нужно аккуратнее.. оптимизаторы думаю меня поймут..
в
Статья супер жду новых
в
Да с первого раза понимается сложно-)
в
Люди а кто даст какой нить текст для ламера??? очень интересно узнать….
в
Зато когда хочется изучить JS углубленно нет ничего лучше, чем написать свою библиотечку AJAX. В свое время написал под IE5.0+, Opera8+,FF1.5+, Safari, Chrome. Получил истинное удовольствие
в
[...] давно я упоминал о разработке данного проекта, но все это дело [...]
в
Т.к. в форме могут быть и символы windows-1251, а с символом вопроса, процентов,
форма вообще ничего не отправляет. Предлагаю заменить строку функции:
{doo = doo + $(v).elements[i].name + «=» + $(v).elements[i].value + «&»;}
заменить на строку с использованием encodeURIComponent() – Латинские буквы, цифры, символы !*()’. оставляет как есть, всё остальное кодирует escape-последовательностями в кодировке UTF-8:
{doo = doo + $(v).elements[i].name + «=» + encodeURIComponent($(v).elements[i].value) + «&»;}
в
Спасибо за статью!!! Очень нужная и поучительная!!!