Изучаем Java

Вы здесь: Главная >> Jquery-учебник >> PHP и Javascript - зачем они нужны

Обучающие курсы:

Курс обучения профессии "Программист Java"
Nota Bene!!! Обучаем на веб-разработчика!!! Спешите!!!

PHP и Javascript - зачем они нужны


Зачем нужны PHP и Javascript

Давайте теперь разберемся, зачем же программистам нужна связка PHP и Javascript?

Серверные веб-технологии позволяют веб-серверу не просто возвращать запрошенные HTML-файлы, но и выполнять дополнительные действия, например сложные вычисления, запускать объектноориентированные программы, работать с базами данных и многое другое.

Только представьте себе, какой объем данных должен обработать Amazon, чтобы сгенерировать индивидуальные рекомендации для каждого посетителя. Или Google, который выполняет поиск информации по гигантской базе данных, чтобы удовлетворить запрос. Да, технологии обработки данных на стороне сервера стали механизмом, запустившим революцию во Всемирной паутине, и причиной, по которой Интернет в нынешнем его виде имеет такой успех.

Очень важно понимать, что, независимо от происходящего на стороне сервера, клиент должен получить ответ на том языке, который ему понятен (что вполне очевидно), например, на языке HTML, который имеет массу ограничений, о чем мы уже говорили.

РНР  это одна из технологий, применяемых для реализации логики приложений на стороне сервера. Мы будем использовать РНР в процессе создания и изучения примеров AJAX. Тем не менее вы должны знать, что у РНР много конкурентов, таких как ASP.NET (Active Server Pages  активные серверные страницы, вебтехнология, разработанная в Microsoft), Java Server Page (JSP  серверные страницы на языке Java), Perl, ColdFusion, Ruby on Rails и других. Каждая из этих технологий предоставляет свои возможности по реализации функциональности на стороне сервера.

РНР  это не только серверная технология, но и язык, на котором программисты могут писать сценарии. Вместо передачи клиенту содержимого файла index.php сервер исполняет сценарий index.php и возвращает полученные результаты. Эти результаты должны быть размечены по правилам HTML или любого другого языка, понятного клиенту.

Обычно на стороне сервера также должен размещаться сервер баз данных, который будет управлять данными.

Однако даже при использовании РНР, который может выполнять сложные запросы к базе данных, зависящие от ситуации, броузер пользователя попрежнему будет статически отображать скучные, не вызывающие интереса вебдокументы.

Потребность в более широких функциональных возможностях удовлетворяется отдельной категорией вебтехнологий, которые называются клиентскими технологиями. Современные браузеры способны анализировать не только простой HTML. Давайте посмотрим как.

JavaScript и другие клиентские технологии

Различные клиентские технологии отличаются друг от друга в первую очередь способом, которым они загружаются и исполняются вебклиентом. JavaScript — это язык сценариев, код которых в виде простого текста может быть внедрен прямо в страницы на языке HTML. Страница HTML, запрашиваемая клиентом, может содержать сценарии JavaScript. Все современные броузеры поддерживают JavaScript и не требуют от пользователя установки дополнительных компонентов в систему.

JavaScript  это самостоятельный язык программирования (теоретически он не связан с разработкой вебприложений). Он поддерживается большинством вебклиентов на любой платформе и обладает некоторыми объектноориентированными возможностями. Язык JavaScript относится к интерпретирующим и потому не годится для разработки приложений с интенсивными вычислениями или драйверов устройств и должен целиком доставляться броузеру клиента для последующей интерпретации. Кроме того, он испытывает определенные проблемы с безопасностью, но при использовании в составе вебстраниц прекрасно справляется с возложенными на него задачами.

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

Среди других клиентских технологий, наделенных функциональными возможностями, можно назвать Javaапплеты и Macromedia Flash. Javaапплеты пишутся на весьма популярном и мощном языке программирования Java и исполняются виртуальной Javaмашиной (Virtual Java Machine  JVM), которую необходимо отдельно устанавливать в систему. Без сомнения, Javaапплеты позволяют создавать более сложные проекты, но применительно к вебприложениям они уже потеряли свою былую популярность, поскольку потребляют значительное количество системных ресурсов. Иногда даже сам запуск их может занимать значительное время, и вообще они слишком тяжеловесны для простых и нетребовательных вебприложений.

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

Комбинируя HTML с серверными и клиентскими вебтехнологиями, можно строить очень мощные вебприложения.

Чего не хватает?

Итак, в нашем распоряжении есть практически все, зачем же нам нужны новые технологии? Чего еще не хватает?

Как говорилось в начале главы, любая технология существует для того, чтобы удовлетворять потребности рынка. А какаято часть рынка всегда хочет предоставлять в распоряжение вебклиентов более широкие функциональные возможности, без использования Flash, Java-апплетов или других технологий, которые либо выглядят слишком ярко и броско, либо слишком тяжеловесны для решения простых задач. В подобных случаях разработчики обычно создают вебсайты и вебприложения на основе комбинации HTML, JavaScript и РНР

Подобное решение таит в себе неприятности, состоящие в том, что, когда клиенту необходимо получить новую порцию данных, он вынужден отправлять серверу новый запрос HTTP и повторно загружать страницу целиком, приостанавливая на время деятельность пользователя. Повторная загрузка страницы  это неизбежное зло в данной ситуации, а помочь нам победить это зло призван AJAX.

 

 

Что такое AJAX

Название AJAX это акроним, раскрывающийся как Asynchronous JavaScript and XML и означающий асинхронный JavaScript н XML. Если это название, на ваш взгляд, мало о чем говорит, мы согласимся с вами. Проще говоря, можно считать, что AJAX — это « JavaScript с расширенными правами», поскольку по своей сути эта технология представляет собой сценарии на языке JavaScript, которые по мере необходимости в фоновом режиме выполняют запросы к серверу и получают дополнительные данные, обновляя отдельные части страницы и тем самым исключая необходимость повторной ее загрузки целиком.

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

Чтобы пояснить вышесказанное на простом примере, рассмотрим вебформу, куда пользователь должен внести некоторые сведения (например, имя, адрес электронной почты, пароль, номер кредитной карточки и прочее). Прежде чем эта форма поступит в распоряжение вашего приложения, она должна быть проверена. В случае отказа от применения AJAX в нашем распоряжении имеются два способа проверки. Первый из них заключается в том, чтобы позволить ему или ей заполнить форму и отправить ее, после чего приложение проверит правильность заполнения на стороне сервера. В этом случае пользователь будет терять время, ожидая загрузки новой страницы. Другой вариант  выполнить проверку на стороне клиента, но это не всегда возможно, если для этого потребуется передать клиенту слишком большой объем данных (только представьте себе, что необходимо проверить правильность ввода названия города в соответствии с введенным названием страны).

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

Примечание

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

Таким образом, технология AJAX служит для создания более гибких и интерактивных вебприложений. Она позволяет выполнять асинхронные обращения к серверу, не прерывая работы пользователя и незаметно для него. AJAX  это инструмент, который может применяться разработчиками для создания вебприложений, более интеллектуально взаимодействующих с человеком.

Технологии, из которых состоит AJAX, уже реализованы во всех современных вебброузерах, таких как Mozilla Firefox, Internet Explorer или Opera. Таким образом, клиент не требует установки какихлибо дополнительных модулей, чтобы иметь возможность взаимодействия с вебсайтами, построенными на основе AJAX. В состав AJAX входят следующие компоненты:

JavaScript  основной ингредиент AJAX, позволяющий реализовать функциональность на стороне клиента. В ваших функциях JavaScript для манипулирования отдельными частями страницы HTML часто задействуется объектная модель документа (Document Object ModelDOM).

Объект XMLHttpRequest позволяет из JavaScript организовать асинхронный доступ к серверу, благодаря чему пользователь имеет возможность продолжать работу со страницей, в то время как она выполняет некоторые действия. Под доступом к серверу подразумеваются простые запросы HTTP на получение файлов или сценариев, размещенных на сервере. Запросы HTTP просты в исполнении и не вызывают какихлибо трудностей в случае применения брандмауэров.

Серверные технологии, которые необходимы для обслуживания запросов, поступающих от. JavaScript, со стороны клиента. В этой книге для выполнения действий на стороне сервера мы будем обращаться к РНР.

Для организации взаимодействия клиентсервер необходимо иметь возможность передавать данные и понимать, что за данные были переданы. Передача данных  это самое простое. Сценарий на стороне клиента, обладающий доступом к серверу (посредством объекта XMLHttpRequest), может передавать серверу пары имязначение с помощью методов GET или POST. Эти данные легко могут быть прочитаны с помощью любого сценария на стороне сервера.

Сценарий на стороне сервера просто отправляет свой ответ по протоколу HTTP, но, в отличие от обычного вебсервера, ответ должен иметь такой формат, который легко может быть разобран кодом JavaScript на стороне клиента. Мы рекомендуем формат XML, который имеет свои преимущества, заключающиеся в том, что, вопервых, он получил широкое распространение и, вовторых, существует большое количество библиотек, облегчающих работу с XML документами. Но при желании можно выбрать любой другой формат (данные могут передаваться даже в виде простого текста). Одна из известных альтернатив XML  JavaScript Object Notation (JSON  представление объектов в JavaScript).

Применение технологии AJAX для создания новых вебприложений дает нам следующие преимущества:

Она позволяет создавать более динамичные и более качественные вебсайты и вебприложения.

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

Она задействует уже существующие технологии.

Позволяет разработчикам применять наработанные навыки.

Функциональные возможности AJAX прекрасно интегрируются функциональностью, предоставляемой вебброузерами (например, навигацией по странице, приведением размеров страницы к определенным значениям и т. д.).

Наиболее общие случаи применения AJAX:

Проверка правильности заполнения формы с привлечением возможностей сервера, что очень удобно, когда невозможно заранее передать клиенту все данные, которые могут потребоваться в процессе проверки.

Разработка простых чатов, которые не требуют наличия внешних библиотек, таких как виртуальная Javaмашина или Flash.

Добавление функциональности, аналогичной подсказкам Google.

Создание динамических таблиц данных, которые на лету обновляют базы данных на сервере.

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

С AJAX связаны следующие потенциальные трудности:

Поскольку адрес страницы в процессе ее работы не изменяется, добавить в закладки ссылку на страницу AJAX будет не такто просто. В случае приложений AJAX установка закладки имеет иное значение, зависящее от конкретного приложения, т. е. обычно требуется сохранить текущее состояние (представьте себе, что работаете с обычной программой, ссылку на которую нельзя поместить в закладки).

Поисковые системы могут оказаться не в состоянии проиндексировать все части вашего сайта, созданного на основе AJAX.

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

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


Партнеры сайта