Что такое аякс в магнитоле
Представляю Вам третью статью из серии jQuery для начинающих. В этот раз я постараюсь рассказать о реализации AJAX запросов.
Что такое AJAX я думаю рассказывать не стоит, ибо с приходом веб-два-нуля большинство пользователей уже воротят носом от перезагрузок страниц целиком, а с появлением jQuery реализация упростилась в разы.
Примечание: Во всех примерах используется сокращенный вариант вызова jQuery методов, используя функцию $ (знак доллара)
jQuery(..).load
- url запрашиваемой страницы
- передаваемые данные (необязательный параметр)
- функция которой будет скормлен результат (необязательный параметр)
jQuery.ajax
$. ajax ( <
url : '/ajax/example.html' , // указываем URL и
dataType : "json" , // тип загружаемых данных
success : function ( data , textStatus ) < // вешаем свой обработчик на функцию success
$. each ( data , function ( i , val ) < // обрабатываем полученные данные
/* . */
> ) ;
>
> ) ;
jQuery.get
- url запрашиваемой страницы
- передаваемые данные (необязательный параметр)
- callback функция, которой будет скормлен результат (необязательный параметр)
- тип данных возвращаемых в callback функцию (xml, html, script, json, text, _default)
jQuery.post
- url запрашиваемой страницы
- передаваемые данные (необязательный параметр)
- callback функция, которой будет скормлен результат (необязательный параметр)
- тип данных возвращаемых в callback функцию (xml, html, script, json, text, _default)
jQuery.getJSON
- url запрашиваемой страницы
- передаваемые данные (необязательный параметр)
- callback функция, которой будет скормлен результат (необязательный параметр)
<
note : <
to : 'Tove' ,
from : 'Jani' ,
heading : 'Reminder' ,
body : 'Don \' t forget me this weekend!'
>
>
jQuery.getScript
- url запрашиваемого скрипта
- callback функция, которой будет скормлен результат (необязательный параметр)
Отправка Формы
Отправка Файлов
Для отправки файлов посредством jQuery можно использовать плагин Ajax File Upload иль One Click Upload
Взаимодействие с PHP
Для организации работы с PHP использую бибилотеку jQuery-PHP, удобно если Вам нравится jQuery ;), подробней читаем в статье PHP библиотека для jQuery
Примеры использования JSONP
Отдельно стоит отметить использование JSONP — ибо это один из способов осуществления кросс-доменной загрузки данных. Если немного утрировать — то это подключение удаленного JavaScript'a, содержащего необходимую нам информациию в формате JSON, а так же вызов нашей локальной функции, имя которой мы указываем при обращении к удаленному серверу (обычно это параметр callback). Чуть более наглядно это можно продемонстрировать следующая диаграмма (кликабельно):
При работе с jQuery имя callback функции генерируется автоматически для каждого обращения к удаленному серверу, для этого достаточно использовать GET запрос ввида:
Вместо последнего знака вопроса (?) будет подставлено имя callback функции. Если же Вы не хотите использовать данный способ, то Вам необходимо будет явно указать имя callback функции, используя опцию jsonp при вызове метода jQuery.ajax().
Google Поиск
Пример получения и обработки результатов поиска используя Google, более подробную информацию найдете в статье "jQuery + AJAX + (Google Search API || Yahoo Search API)"
Yahoo Поиск
Пример получения и обработки результатов поиска используя Yahoo, более подробную информацию найдете в статье "jQuery + AJAX + (Google Search API || Yahoo Search API)"
JSONP API
-
— поиск и большинство сервисов — поиск и большинство сервисов — соответственно и все производные — Wikipedia, Wiktionary и т.д.
События
Для удобства разработки, на AJAX запросах висит несколько event'ов, их можно задавать для каждого AJAX запроса в отдельности, либо глобально. На все event'ы можно повесить свою функцию.
Пример для отображения элемента с во время выполнения любого AJAX запроса:
$. ajax ( <
beforeSend : function ( ) <
// Handle the beforeSend event
> ,
complete : function ( ) <
// Handle the complete event
>
// .
> ) ;
Для большей наглядности, приведу следующую диаграмму (кликабельно):
Ajax Systems запись закреплена
Ajax Systems запись закреплена
Ajax Systems запись закреплена
Ajax Systems запись закреплена
А как реализовать сценарий отмены закрытия роллставней, когда есть препятствие под ними? Например, стоит машина.
AJAX — это аббревиатура, которая означает Asynchronous Javascript and XML. На самом деле, AJAX не является новой технологией, так как и Javascript, и XML существуют уже довольно продолжительное время, а AJAX — это синтез обозначенных технологий. AJAX чаще всего ассоцириуется с термином Web 2.0 и преподносится как новейшее Web-приложение.
- Возможность создания удобного Web-интерфейса
- Активное взаимодействие с пользователем
- Частичная перезагрузка страницы, вместо полной
- Удобство использования
Обмен данными
Обмениваться данными с сервером можно двумя способами. Первый способ — это GET-запрос. В этом запросе вы обращаетесь к документу на сервере, передавая ему аргументы через сам URL. При этом на стороне клиента будет логично использовать функция Javascript`а escape для того, чтобы некоторые данные не прервали запрос.
Не рекомендуется делать GET-запросы к серверу с большими объемами данных. Для этого существует POST-запрос.
Клиент часть, написанная на Javascript, должна обеспечивать необходимую функциональность для безопасного обмена с сервером и предоставлять методы для обмена данными любым из вышеперечисленных способов. Серверная часть должна обрабатывать входные данные, и на основе их генерировать новую информацию (например, работая с базой данных), и отдавать ее обратно клиенту. Например, для запроса информации с сервера можно использовать обычный GET-запрос с передачей нескольких и небольших по размеру параметров, а для обновления информации, или добавления новой информации потребуется использовать уже POST-запрос, так как он позволяет передавать большие объемы данных.
В разных браузерах данный объект обладает разными свойствами, но в целом он совпадает.
Заметьте, что названия методов записаны в том же стиле (Camel-style), что и другие функции Javascript. Будьте внимательны при их использовании.
abort() — отмена текущего запроса к серверу.
getAllResponseHeaders() — получить все заголовки ответа от сервера.
readyState — число, обозначающее статус объекта.
responseText — представление ответа сервера в виде обычного текста (строки).
responseXML — объект документа, совместимый с DOM, полученного от сервера.
status — состояние ответа от сервера.
statusText — текстовое представление состояния ответа от сервера.
- 0 — Объект не инициализирован.
- 1 — Объект загружает данные.
- 2 — Объект загрузил свои данные.
- 3 — Объек не полностью загружен, но может взаимодействовать с пользователем.
- 4 — Объект полностью инициализирован; получен ответ от сервера.
Как уже говорилось выше, создание данного объекта для каждого типа браузера — уникальный процесс.
Например, для создания объекта в Gecko-совместимых браузерах, Konqueror`е и Safari, нужно использовать следующее выражение:
А для Internet Explorer`а используется следующее:
var Request = new ActiveXObject("Microsoft.XMLHTTP");
var Request = new ActiveXObject("Msxml2.XMLHTTP");
Теперь, чтобы добиться кроссбраузерности, необходимо сложить все функции в одну:
После всего этого можно создавать данный объект и не беспокоится за работоспособность на популярных браузерах. Но создать объект можно в разных местах. Если создать его глобально, то в определенный момент времени возможен будет только один запрос к серверу. Можно создавать объект всякий раз, как происходит запрос к серверу (это почти полностью решит проблему).
Запрос к серверу
Создавать запрос стало намного проще. Для примера напишем функцию, которая будет получать содержимое файла на сервере и выводить его в контейнер.
Именно таким образом происходит взаимодействие с сервером.
Обработка ответа
В предыдущем примере мы сделали функцию запроса к серверу. Но она, по сути, небезопасна, так как мы не обрабатываем состояния объекта и состояния ответа от сервера.
Дополним наш код, чтобы он смог выводить визуальное оповещение о процессе загрузки.
Варианты ответа от сервера
JSON — это объектная нотация Javascript. С ее помощью можно представить объект в виде строки (здесь можно привести аналогию с функцией сериализации). При получении JSON-данных вы должны выполнить их, чтобы получить полноценный объект Javascript и произвести с ним необходимые операции. Помните, что такая передача данных и выполнение их не являются безопасными. Вы должны следить за тем, что поступает на исполнение.
Пример кода JSON:
При получении такого кода, производим следующее действие:
var responsedata = eval("(" + Request.responseText + ")")
После выполнения данного кода вам будет доступен объект responsedata.
Работа с серверными языками программирования
Такая работа ничем не отличается от обычной. Для примеров я возьму PHP в качестве серверного языка. В клиентской части ничего не изменилось, но серверная часть теперь представлена PHP-файлом.
По традиции, начнем с приветствия нашему замечательному миру:
Помимо PHP, можно использовать любой другой серверный язык программирования.
Литература по теме
Статья написана с целью рассказать новичкам о работе AJAX изнутри. Если Вам кажется, что что-то написано неточно или неверно, поправляйте, пожалуйста, меня, для того, чтобы создать достойную статью вместе.
Во время поездок на автомобиле, многие привыкли использовать мультимедийную систему для проигрывания аудиофайлов. Но в некоторых транспортных средствах такая опция просто не предусматривается. В деле всегда может выручить радиоприемник, который точно найдется в любом авто. Но даже при использовании такого простого устройства могут возникать некоторые сложности.
Рассматривать причину заиканий следует в свете 3 малоизвестных обычному автомобилисту функций, которые предусмотрены практически в каждой автомагнитоле
Радиоприемник в автомобиле - не самое технологичное решение, особенно если речь идет о современном транспорте. Однако, такие системы при отсутствии Интернета и доступа к Сети могут скрасить время пребывания за рулем. Но даже в радиоприемнике порой можно замечать некоторые ошибки.
Многие могли сталкиваться с ситуациями, когда во время прослушивания радиостанции запись прыгает с одного места на другое, будто диджей намеренно меняет дорожку трека. Никакой проблемы в данном случае нет, а само явление объясняется очень просто.
Рассматривать причину заиканий следует в свете 3 малоизвестных обычному автомобилисту функций, которые предусмотрены практически в каждой автомагнитоле. Речь идет о системах, которые на магнитоле обозначаются аббревиатурами TA, PTY и AF. В России об этих функциях практически не знают, из-за чего и не используют. Главная особенность заключается в том, что все 3 кнопки располагаются рядом друг с другом.
TA можно расшифровать как "Traffic Announcement". В переводе на русский это "оповещение о дорожной обстановке". Если включить данную функцию, автомобильная магнитола будет в автоматическом режиме переключаться на частоту оповещений о ситуациях по пути вашего следования. Речь идет о таких обстоятельствах, как пробки, аварии, объезды, дорожные работы и прочее.
Если активировать данную функцию, автомагнитола будет самостоятельно искать альтернативную частоту. Происходит это в том случае, если ухудшается сигнал связи
PTY - "Programm Type". Данная функция может сортировать радиостанции по определенному критерию. К примеру, система может показывать список радиостанций, на которых проигрывается рок-музыка, или волны, на которых оповещается классика.
AF - "Alternative Frequencies". Если активировать данную функцию, автомагнитола будет самостоятельно искать альтернативную частоту. Происходит это в том случае, если ухудшается сигнал связи. Именно эта функция относится к представленной выше ситуации.
Представим, что автомобилист передвигается по дороге и прослушивает радиостанцию на несущей частоте. Когда транспортное средство проезжает определенную зону, прием может ухудшаться. Это происходит, если на одном участке вещают сразу 2 вышки данной радиостанции в разных городах. Автомагнитола с включенной функцией AF начинает самостоятельно выбирать вышку с более качественным сигналом.
Избавиться от такого эффекта тоже можно. Для этого достаточно отключить функцию AF
Не стоит полагать, что вышки в разных городах вещают синхронно. Разница в эфире может находиться в пределах 2-10 секунд. Именно поэтому можно наблюдать скачки в проигрывании музыки. Не трудно догадаться, что избавиться от такого эффекта тоже можно. Для этого достаточно отключить функцию AF. Практика показывает, что в пограничных зонах такая опция является лишней и мешает комфорту.
Данные кнопки появились еще задолго до современных цифровых технологий. Согласно истории, они нормально работали только на территории США и Европы. В современных условиях пользы от данный опций нет, поэтому можно смело обходиться без них.
Итог. Если в процессе проигрывания радиостанции запись перескакивает назад или вперед, это может говорить об активированной функции AF. Ее можно отключить на консоли автомагнитолы.
На Geektimes и Хабре публиковалось немало статей о разнообразных системах безопасности, как фабричных, так и DIY. При этом большинство из них специализированные. Одни защищают дом от проникновения нежелательных гостей, другие предупреждают о превышении концентрации в воздухе опасных веществ или сообщают владельцу о задымлении/пожаре/наводнении в помещении.
Поскольку таких систем действительно много, то есть и попытки объединить разнообразные датчики в единую систему, которая собирала бы информацию со всех элементов в помещении, обрабатывала и отправляла владельцу в случае необходимости. Мы в Madrobots искали для себя универсальную систему, которая могла бы предложить все и сразу, без необходимости докупать решения от сторонних производителей. Пробовали много вариантов самых разных компаний, пробовали SmartHome и DIY системы. У всех были какие-то проблемы и недостатки, которые с течением времени тяготили все больше. В конце-концов приняли решение установить профессиональную систему безопасности (офис у нас довольно большой, да), которая поддерживает новейшие технологии. Перерыв в Интернете гору информации, остановились на системе от Ajax Systems. О ней сегодня и расскажем.
Главное, что стоит помнить, читая обзор (этот или любой другой) — рано или поздно система безопасности пригодится. Часто мы слышим, что с кем-то случается ограбление, пожар или потоп. Обычно человек просто радуется тому, что это произошло не с ним, и забывает о рисках. Но на самом деле, надеяться на то, что проблемы пройдут стороной, не стоит. Кроме того, даже, если есть страховка имущества — она не всегда поможет. Страховые компании любят затягивать рассмотрение страховых случаев, иногда вообще не возмещая ущерб. Страховать имущество можно и нужно, но вместе с тем, стоит позаботиться и дополнительных мерах — как, например, система безопасности.
Да, сразу еще скажем о том, что мы продаем эту систему, как и многие другие вещи о которых мы рассказываем. Но прежде мы с ней поработали сами, изучив, и уж потом — начали продавать. Перейдем к делу.
Основная идея
При разработке системы авторы руководствовались идеей создать нечто универсальное. После относительно продолжительного R&D периода на свет появилась беспроводная система безопасности, которая защищает сразу от проникновения, пожара и затопления. Она отвечает всем требованиям к профессиональным системам безопасности. Ajax — беспроводная профессиональная, комплексная система безопасности, управляемая со смартфона или планшета.
На данный момент у Ajax — 15 различных устройств, подключаемых к единому хабу Ajax Hub. Это датчики движения, открытия дверей и окон, удара и наклона, разбития стекла, протечки, дыма, высокой температуры и угарного газа. Плюс есть комбинированные датчики и реле управления питанием электроприборов.
Управляется Ajax со смартфона. Приложение (есть для iOS и Android) информирует о состоянии всех устройств системы, позволяет менять их настройки и режимы работы, показывает детальную историю событий, а также оперативно уведомляет о тревогах. У системы безопасности может быть до 50 пользователей, каждому можно дать определенный объем прав и установить оптимальный режим уведомлений: Push, SMS, звонки.
Настройка системы производится за полчаса-час, здесь все зависит от размеров объекта, где устанавливаются датчики. Датчики подключаются к хабу — управляющему системой устройству. Подключение осуществляется через приложение считыванием QR-кода на корпусе датчика (или упаковке). Разработчики постарались сделать так, чтобы настройки по умолчанию были оптимальными. Крепить лучше шурупами, двусторонним скотчем можно, но нежелательно. В целом, установить систему может любой человек, вне зависимости от того, есть у него профессиональные знания или нет. Если вдруг нужна дополнительная информация — можно обратиться к инструкции или в службу поддержки. При желании можно заказать установку.
Управляющее приложение оснащено большим количеством функций. Благодаря этому пользователь может самостоятельно контролировать любой объект с установленной системой безопасности Ajax. Есть лог событий. При наступлении любого из событий, предусмотренного правилами системы (и настроенным пользователем) отправляются уведомления. Кроме того, программная платформа позволяет предоставлять доступ другим пользователям и настраивать их роли.
Что умеет Ajax?
Все датчики беспроводные, дальность приема-передачи сигнала между датчиком и хабом достигает вплоть до 2 км при условиях прямой видимости. От батарей датчики работают вплоть до 7 лет. Систему безопасности можно масштабировать, добавлять или убирать устройства. Максимальное число датчиков, поддерживаемых системой — 100. Этого вполне достаточно даже для крупного предприятия.
Это не DIY решение, а профессиональная система безопасности, устойчивая к попыткам взлома. Он прошла независимую проверку и получила несколько европейских сертификатов. Все датчики защищены от демонтажа при помощи креплений SmartBracket с тамперами, а регулярный опрос датчика оперативно выявляет его пропажу. Для этого они раз в 36 секунд опрашиваются хабом, сообщая о своем состоянии. Настройки пинга можно менять, выставив интервал от 12 до 300 секунд. Каналов связи с сервером у хаба два — это беспроводной GSM и проводной Ethernet. Хаб не боится глушения и обесточивания, работает в автономном режиме вплоть до 15 часов. Защита от глушения организована при помощи протокола связи Jeweller. Беспроводной протокол Jeweller — собственная разработка компании. Она использует незашумленную частоту благодаря умению искать чистую частоту в случае глушения канала (в пределах 868.0-868.6 мГц). Дальность работы системы составляет вплоть до 2000 м. К достоинствам Jeweller можно отнести дальность, энергоэффективность, двустороннюю связь, шифрование данных и оповещение о глушении.
А что с подключаемыми устройствами?
У Ajax Systems 15 датчиков и подключаемых устройств, причем список доступных модулей постоянно расширяется. Описать все их не позволяет объем статьи, так что мы возьмем для примера 5 различных модулей, выполняющих разные функции.
Ajax FireProtect Plus
FireProtect Plus — противопожарный датчик, который, к тому же, умеет замерять концентрацию опаснейшего для здоровья угарного газа. Он способен обнаруживать возгорания, сопровождающиеся выделением дыма, резкое повышение окружающей температуры (даже без дыма) и угарный газ.
Обнаружение дыма осуществляется при помощи оптической системы. Если температура повышается выше допустимого предела в 59 градусов Цельсия, датчик также выдает сигнал тревоги. Есть встроенная сирена, которая включается при обнаружении указанных проблем и работает с громкостью в 85 дБ (шум взлетающего самолета оценивается примерно в 110 дБ).
Этот датчик может работать и в автономном режиме, без подключения к хабу. Он позволяет тестировать дымовую камеру из приложения.
Ajax HomeSiren
Как уже можно понять из названия, это — сирена. Она, как и все прочие устройства Ajax, беспроводная. Настраивать на срабатывание сирены можно любой из подключенных к системе датчиков по отдельности. Громкость работы — от 81 до 105 дБ, причем громкость тоже регулируется. При желании можно подключить внешний светодиод, который при вводе в режим охраны всей системы будет мигать с секундным интервалом — неплохое предупреждение для возможных нежеланных гостей.
То есть срабатывает сирена Ajax HomeSiren не только тогда, когда кто-то неожиданно вламывается в квартиру, но и в случае появления высокой температуры, задымленности, прорыва труб (или забытого крана, который затапливает помещение) или после нажатия тревожной кнопки. Разбудить сирена может и мертвого, так что проспать опасность не получится.
Ajax KeyPad
Дизайн клавиатуры Ajax KeyPad весьма удачный — выглядит она стильно, интерьер не испортит. Действия, выполняемые пользователем на клавиатуре, дублируются в приложении, в журнале активности. В журнале отражается не только действия пользователя с клавиатурой, но и вообще вся активность системы.
Ajax CombiProtect
Это комбинированный датчик движения и разбития стекла. Он способен контролировать целостность стекол в радиусе 9 метров. Движение человека (на животных не реагирует) Ajax CombiProtect определяет с 12 метров. При необходимости можно настраивать порог срабатывания датчика, увеличив чувствительность до реакции и на животных.
Вероятность срабатывания датчика Ajax CombiProtect из-за ложных сигналов, спровоцированных сквозняками, грозой, отблесками и прочими факторами снижена до минимума.
Это небольшое реле управления питанием электроприборов. “Модуль” умеет считать энергопотребление, защищать подключенные к розетке умные устройства, отключая их в случае перегрузки в электросети, и выполнять ряд других функций. WallSwitch можно использовать для полного обесточивания жилья в удаленном режиме. Реле поможет создать эффект присутствия: находясь в командировке, можно зажигать свет в помещениях, что отпугнет злоумышленников. Еще один вариант — управление нагревательными приборами в удаленном режиме. Включать их можно удаленно, за несколько часов до возвращения домой. А если подключить еще и водяной электроклапан, то при помощи WallSwitch можно перекрыть воду во всей квартире, если прорвало трубу.
Как и все прочие модули, WallSwitch подключается к общему хабу.
Здесь стоит обратить внимание на то, что глубина подрозетника для размещения модуля должна составлять около 60 мм.
К Ajax можно подключить IP-камеры видеонаблюдения, приложение транслирует вплоть до 10 RTSP-потоков.
Это далеко не все датчики, которые предлагает Ajax Systems. Кроме ужа названных, есть датчик дыма с температурным сенсором Ajax FireProtect, уличная сирена Ajax StreetSitren, брелок с тревожной кнопкой Ajax SpaceControl, датчик открытия дверей и окон Ajax DoorProtect, датчик движения Ajax MotionProtect и несколько других устройств.
Кроме камер можно подключать и дополнительные датчики от сторонних производителей, для чего нужен модуль Transmitter. Эта опция предусмотрена для продвинутых пользователей, которым нужны дополнительные возможности. Например, можно подключить к Ajax уличную камеру движения, которой нет в ассортименте устройств компании.
В качестве вывода
В конце обзора хотелось бы еще раз подчеркнуть, что Ajax — это система безопасности профессионального уровня. Она универсальная и гибкая — ее можно самостоятельно установить и настроить под собственные нужды, расширяя изначальный базовый комплект до продвинутой системы безопасности с десятками датчиков, сенсоров и камер. При необходимости систему безопасности Ajax можно подключить к пульту мониторинга охранной компании — случись беда, оперативно отреагируют профессионалы..
Ставить и снимать систему с охраны можно с помощью мобильного приложения, брелоком SpaceControl и клавиатурой KeyPad — как удобнее пользователю.
Еще один плюс — это надежность защиты системы от взлома, о чем говорилось выше. Обычно производители умных устройств уделяют максимальное внимание функциональности своей системе и ее дизайну, забывая о том, что в наше время необходимо защищать smart-устройства от внешнего вмешательства.
Читайте также: