• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Ошибки при использовании Ajax

  • Автор темы admin
  • Дата начала
A

admin

В своей статье ресурс SWiK освещает проблемы, с которыми сталкивается пользователь Ajax приложений. Довольно большая статья, с развернутыми комментариями, для тех, кто еще не успел столкнуться с минусами данной технологии - будет особенно интересно.

Автор упоминает:
- Отсутствие поддержки кнопки "Назад"
- Недостаток визуального сопровождения при кликах на виджеты (widgets)
- Невозможность использования ресурса оффлайн
- Отправка чувствительной информации по незащищенным каналам
- Разработка AJAX приложений только для одной платформы
- Замедление работы браузера в связи с большим количеством Javascript кода
- Для не браузеров не использующих или не поддерживающих JavaScript альтернативы нет
- Изобретение новых и непривычных пользовательских интерфейсов
- Изменение состояния страницы при переходе по ссылкам (GET запросы)
- Мигание и неожиданное изменение части страницы
- Отсутствие ссылок, которые можно отправить другу или занести в закладки (решение: permalinks)
- Возможное отставание в изменении одних частей страницы, по сравнению с другими
- Асинхронное выполнение пакетных операций
- Игнорирование поисковых роботов (затрудненная индексация подобных страниц)
- Не следование стандартам
- Сложность отправки сообщений об ошибках
- Большие размеры Ajax страниц, чтобы избежать обновления страницы при работе

Оригинал (англ.яз.):
 
A

admin

<P>Ниже, ссылки на несколько новых статей по Ajax и web-технологиям будущего:
  • <LI>"<A href="http://www-128.ibm.com/developerworks/xml/library/x-futhtml2.html" target="_blank">The future of HTML, Part 2: XHTML 2.0</A>" - примеры новшеств ожидаемых в следующей версии стандарта HTML (теперь XHTML); <LI class=l>"<A href="http://dev2dev.bea.com/pub/a/2006/01/ajax-back-button.html" target="_blank">Developing Ajax Applications That Preserve Standard Browser Functionality</A>" - пример реализации функциональности кнопки браузера "вернуться назад" в Ajax web-приложениях; <LI class=l>"<A href="http://www.xml.com/pub/a/2006/01/18/ajax-html-canvas-ruby.html" target="_blank">All Aboard AJAX, HTML Canvas, and the Supertrain</A>" - пример использования таких новых возможностей web-разработки как XMLHttpRequest (технология Ajax) и тэга Canvas для создания векторных изображений, с примерами кода на языке Ruby; <LI class=l>"Call SOAP Web services with Ajax" (<A href="http://www-128.ibm.com/developerworks/webservices/library/ws-wsajax/" target="_blank">часть 1</A>, <A href="http://www-128.ibm.com/developerworks/webservices/library/ws-wsajax2" target="_blank">часть 2</A>) - статья про создание web-приложений вызывающих SOAP web-сервисы посредством технологии Asynchronous javascript and XML (Ajax); <LI class=l>"<A href="http://www.informit.com/articles/article.asp?p=439600&rl=1" target="_blank">How To Use AJAX Patterns</A>" - обзор некоторых моделей написания Ajax приложений; <LI class=l>"<A href="http://phpinside.ru/?q=node/362" target="_blank">J4P5 - интерпретатор javascript, написанный на PHP5</A>" - небольшой обзор проекта <A href="http://j4p5.sourceforge.net/index.php" target="_blank">J4P5</A>, цель которого написание javascript интерпретатора на PHP; <LI class=l><A href="http://www.bindows.net/" target="_blank">Bindows Framework</A> - скриншоты коммерческого продукта, позволяют в полной мере ощутить возможности парадигмы Ajax и перспективы будущего web. Bindows позволяет создавать обычные оконные интерактивные приложения доступные через web-браузер. </LI>
 
A

Andrew Stephanoff

AJAX не панацея от всех бед, и разрабатывать сайт исключительно по этой технологии, конечно, смысла нет, иначе мы можем забыть про индексацию и сохранение страниц.
Однако, уже подчеркивалось в нескольких форумах, некоторые интреактивные элементы, такие как голосование, "быстрый ответ" в форумах, редактирование, отсылка сообщений администратору сайта можно (и я считаю нужно) делать по этой технологии.
Уже говорилось про то, что одна из проблем AJAX -- отсутствие поддержки кнопки Back, однако этот недостаток можно превратить в достоинство -- вспомните, как засоряется история браузера при просмотре форумов, ответах в темах и голосовании. Что толку от страницы, на которой мы размещали свой ответ, либо редактировали свое сообщение? При интеграции AJAX мы можем непосредственно с текущей страницы отправлять сообщения, либо редактировать их, экономя свое время и прекрасно пользуясь кнопкой Back ;)
Многие упирают на то, что для AJAX требуется поддержка JS, а если ее нет, то и работать ничего не будет. Конечно, это правда. Но не до конца. К примеру -- стандартная функция форума "быстрый ответ". Нам не потребуеся даже сильно менять код скрипта. Просто в форме укажем
Код:
onsubmit=javascript:return false;
и на кнопку Submit повесим обработчик
Код:
onclick=send();
В функции send() мы отошлем данные скрипту с указанием того, что данные пришли через js -- введем переменную ajax=true, а в скрипте, после выполнения всех действий, в зависимости от значения переменной ajax, сгенерируем либо xml, либо страницу с сообщением и редиректом на HTTP_REFERER. Наш js забирает сгенерированный xml и парсит его (DOM). В принципе, тут можно использовать SOAP либо XML RPC, но, на мой взгляд, для небольших задач достаточно передавать такой xml
Код:
<response>
<message>Message</message>
...
<error>Error</error>
...
</response>
Такой xml достаточно просто обработать и для небольших задач использовать проще. В алерте мы можем сделать вывод либо всех сообщений или ошибок, либо просто выводить текст, типа "Ваше сообщение отослано" или "Имеются ошибки". Если ошибок нет, то поля ввода очищаются.
Но вот js выключен и что мы имеем? Стандартную форму быстрого ответа.
На мой взгляд, когда шумиха вокруг данной технологии спадет, AJAX займет свою нишу. Нет, не будут создаваться целые проекты на "чистом" AJAX, данная технология позволит просто упростить работу и навигацию на сайтах.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!