Такой громкий заголовок аббревиатуре AJAX дал журнал
Компьютерра. Однако, как говорится в их же
статье:
AJAX расшифровывается как Asynchronous JavaScript + XML (асинхронный JavaScript+XML) и технологией в строгом смысле слова не является. Это просто аббревиатура, обозначающая подход к созданию веб-приложений...
В любом случае, подход достаточно
(
Read more... )
Попробуйте готовые либы для работы: prototype.js, script.aculo.us и т.п.
Правильно написанное приложение переводится на аякс путем щелчка пальцами и десятка строк кода
Reply
Где посмотреть такие правила, с использованием которых любое приложение можно перевести на ajax путем десятка строк? Я заинтересован :)
Reply
В коде добавляем:
if (isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && $_SERVER["HTTP_X_REQUESTED_WITH"] = "XMLHttpRequest"){
//Нормальный способ отображения страниц - все блоки.
$smarty->display('index.tpl');
else {
//Вернуть только центральный блок, который всегда хранится в переменной $PAGE
$smarty->display($smarty->_tpl_vars["PAGE"]);
}
К коду дописываем джаваскрипт:
function display(url){
var myAjax = new Ajax.Updater(
'content', //ид контейнера, в котором распологаются, в нажем случае, новости
url,
{
method: 'get',
});
return false;
}
и оформляем новости в виде:
{$news.title}Собственно, все ( ... )
Reply
Если у вас приложение основано на шаблонах реализвоать AJAX будет не так уж и сложно. По крайней мере не так, как вы это описали (:
P.S. Хотя еще несколько подводных камней есть.
Reply
технология не "перевернет веб", а "переворачивет почти десять лет" (:
Повсеместного употребления не получила, т.к. все что происходит средствами джаваскрипта является тайной за семью печатями для поисковиков - они не индексируют аякс-сайты.
Именно поэтому, как вы могли заметить, в приведенном мной примере ссылки a href ведут на статические страницы (их с удовольствием съедять поисковики и посетители на старых браузерах), а метод onclick сработает для тех, у кого браузер новый и есть поддержка джаваскрипта.
Кстати, onclick можно повесить джаваскриптом для всех ссылок в блоке content, однако для данного примера усложнять не хотелось.
Reply
Reply
Я всегда придерживался мнения, что программа должна наряду со своей функциональностью быть максимально простой и понятной, как говорится, с первого взгляда. Smarty этим требованиям не отвечает. К тому же у меня с ним были проблемы с совместимостью.
Поэтому, когда таких вот функций и возможностей, вроде новостей, должно быть много, + красивые рюшечки, да и вообще дохрена JS, который должен это все должным образом обрабатывать на клиенте, то переделать "простое" приложение под ajax становится затруднительным.
Reply
Да, смарти не идеален, есть шаблонизаторы и лучше. Но он делает свою работу: разделяет представление от логики, за что ему респект и уважуха.
С совместимостью в смарти проблем не видел, хотя поднимал под различными веб-сервереами и версиями РНР. Простота и понятность, с использованием шаблонизатора, как раз на порядок больше. Никогда не возникает вопрос "а где объявлена эта переменная, которая выводится в этом месте". При разработке несколькими людьми одного проекта это позволяет немного стандартизировать код.
Последний абзац - сплошное абстрагирование. Зачастую делая что-то средствами JS вы снимаете с себя работу по повторению того же в PHP. Ситуации, когда нужен функционал и там и там - редки, и обходятся как я показал вам на примере.
Reply
Reply
Leave a comment