Архитектура кода нового 2ГИС Web API или куда мы дели MVC
JQuery
1.
2.
3.
4. Отмена действия браузера
Воспользуемся объектом из JavaScript – событие (event)
Список свойств: http://javascript.ru/tutorial/events/properties
Для отмены действия браузера существует стандартный метод:
event.preventDefault()
5. Формат JSON
JSON (англ. JavaScript Object Notation) — текстовый формат обмена
данными, основанный на JavaScript и обычно используемый именно с
этим языком.
Несмотря на происхождение от JavaScript (точнее, от подмножества
языка стандарта ECMA-262 1999 года), формат считается
языконезависимым и может использоваться практически с любым
языком программирования.
Для многих языков существует готовый код для создания и обработки
данных в формате JSON.
Подробности: http://json.org/
8. Кроссдоменные запросы
JSONP (JSON Padding) или «JSON с подкладкой» является
расширением JSON, когда имя функции обратного вызова
указывается в качестве входного аргумента.
Без использования технологии JSONP
(то есть используя просто JSON кодирование данных)
сервер может вернуть только данные:
9. Кроссдоменные запросы
Используя технику JSONP, стороннему серверу передается в
строке вызова (GET) имя callback функции. Здесь параметр
callback содержит имя функции parseResponse.
<script
type="text/javascript"
src="http://server.ru/getjson?callback=parseResponse">
</script>
Теперь посторонний сервер server.ru может вернуть следующий код:
Теперь код вызывает javascript-функцию первого домена.
11. getJSON
В результате выполнения этого кода, браузер совершит GET запрос
к серверу search.twitter.com и получит данные в формате JSON,
обернутые в специальную callback-функцию.
callback=?
Именно благодаря этому параметру, сервер search.twitter.com понимает,
что необходимо отдать данные в формате JSONP.
Волшебный метод $.getJSON понимает параметр callback=?
и формирует запрос примерно так:
http://search.twitter.com/search.json?callback=jQuery1835130&q=hurricane
Сервер возвращает данные в формате jsonp:
jQuery1835130{ ******************** })
12. Deffered objects
Появились в jQuery 1.5
Отделяют логику, которая зависит от результатов выполнения действия от
самого действия.
Некоторые из методов:
deferred.done( doneCallbacks )
добавляет обработчик, который будет вызван, когда объект deferred
перейдёт в состояние «выполнено»
deferred.fail( failCallbacks )
добавляет обработчик, который будет вызван, когда объект deferred
перейдёт в состояние «отменено»
deferred.then( doneCallbacks, failCallbacks )
добавляет обработчики сразу обоих типов, описанных выше, эквивалентна
записи deferred.done(doneCallbacks).fail(failCallbacks)
13. MAP
Переводит все элементы массива в другой массив элементов
http://jquery-docs.ru/utilities/jquery-map/