SlideShare a Scribd company logo
Игорь Борисов
http://igor-borisov.ru
 Геолокации
 Фоновые вычисления
 Работа с локальными файлами
 Техника «Drag-N-Drop»
 Хранение данных в браузере:
 локальное и сеансовое
 база данных
 Холст: приёмы рисования в браузере
Игорь Борисов
http://igor-borisov.ru
 Определение местоположения пользователя
 Объект geolocation
 Методы объекта geolocation
 Дополнительные объекты
 Пример использования Google.Map API
 Пример использования Яндекс.Map API
navigator
geolocation
▪getCurrentPosition()
▪watchPosition()
▪clearWatch()
 var loc = navigator.geolocation();
 loc.getCurrentPosition(
function(position){
});
position
timestamp
coords
▪latitude - широта
▪longitude - долгота
▪accuracy - точность
error
message
code
▪1 – нет разрешения
▪2 – техническая ошибка
▪3 – превышено время ожидания
enableHighAccuracy: false
timeout: 0
maximumAge: 0
 Google
 https://developers.google.com/maps/documentation/
javascript/reference
 Яндекс
 https://tech.yandex.ru/maps/doc/jsapi/index-
docpage/
 Определение местоположения пользователя
 Объект geolocation
 Методы объекта geolocation
 Дополнительные объекты
 Пример использования Google.Map API
 Пример использования Яндекс.Map API
Игорь Борисов
http://igor-borisov.ru
 ОбъектWorker
 Методы объектаWorker
 Практическое использование веб-работников
 window.Worker
 var worker = new Worker(‘worker.js’);
 worker.postMessage(‘John’);
 worker.onmessage = function(event){
event.data;
};
 worker.onerror = function(error){
error.message;
};
 Использование фоновых вычислений
 Файл labswebworkersindex.html
 ОбъектWorker
 Методы объектаWorker
 Практическое использование веб-работников
Игорь Борисов
http://igor-borisov.ru
 Объект FileReader
 Чтение файлов
 Загрузка файлов и их вставка в документ
FileReader
readAsText
readAsBinaryString
readAsArrayBuffer
readAsDataURL
FileReader
onloadstart, onloadend
onprogress
onload
onabort, onerror
 Объект FileReader
 Чтение файлов
 Загрузка файлов и их вставка в документ
Игорь Борисов
http://igor-borisov.ru
 Техника Drag-N-Drop
 События перемещаемых объектов
 События целевых объектов
draggable=true
ondragstart
ondrag
ondragend
ondragenter
ondragover
ondragleave
ondrop
 Использование техники Drag-N-Drop
 Файл labsdrag-n-dropindex.html
 Техника Drag-N-Drop
 События перемещаемых объектов
 События целевых объектов
Игорь Борисов
http://igor-borisov.ru
 Объекты localStorage и sessionStorage
 Свойства хранилищ
 Методы хранилищ
 Событие глобального объекта на изменение
хранилища
Web Storage
localStorage
sessionStorage
 localStorage.key = data
 localStorage[key] = data
 localStorage.setItem(key, data)
 localStorage.getItem(key)
 localStorage.removeItem(key)
 localStorage.clear()
 localStorage.key(id)
 window.onstorage
 Использование хранилищ
 Файл labsstorageindex.html
 Объекты localStorage и sessionStorage
 Свойства хранилищ
 Методы хранилищ
 Событие глобального объекта на изменение
хранилища
Игорь Борисов
http://igor-borisov.ru
 Объект IndexedDB
 Использование объектов хранения
 Обработчики событий
 Основные манипуляции с данными
 Использование индексов
 indexedDB.open(dbName, version)
 onsuccess
 onerror
 onupgradeneeded
 onblocked
 db.createObjectStore(tableName)
 add(item)
 db.objectStoreNames.contains(str)
 db.transaction([tableName], type)
 readonly
 readwrite
 transaction.objectStore(key)
 get(key)
 delete(key)
 put(object, key)
 objectStore.openCursor(range, type)
 prev
 next
 range
 null
 IDBKeyRange.lowerBound(int, bool)
 IDBKeyRange.upperBound(int, bool)
 IDBKeyRange.bound(int, int)
 objectStore.createIndex(idxName, field,
options)
 objectStore.index(idxName).get(str)
 Использование локальной базы данных
 Файл labsindexeddbindex.html
 Объект IndexedDB
 Использование объектов хранения
 Обработчики событий
 Основные манипуляции с данными
 Использование индексов
Игорь Борисов
http://igor-borisov.ru
 HTML-элемент Canvas
 Объект Context
 Рисование прямых и кривых
 Рисование примитивов
 Использование визуальных эффектов
 Использование изображений
 canvas
 getContext(“2d”)
 beginPath()
 moveTo(x, y)
 lineTo(x, y)
 stroke()
 lineWidth(width)
 strokeStyle(color)
 lineCap
 butt
 round
 square
 Рисование макетной сетки
 Файл labscanvasgrid.html
 arc(x, y, radius, angle1, angle2, clockwise)
 quadraticCurveTo(x, y, point, end)
 bezierCurveTo(x, y, point1, point2, end)
 lineJoin
 miter
 round
 bevel
 rect(x1, y1, x2, y2)
 fillStyle = color | gradient | pattern
 fill()
 fillRect(x1, y1, x2, y2)
 createLinearGradient(x1, y1, x2, y2)
 createRadialGradient(x1, y1, r1, x2, y2, r2)
 addColorStop(0, color)
 addColorStop(1, color)
 createPattern(image, repeat)
 font = weight style size family
 fillText(text, x, y)
 strokeText(text, x, y)
 textAlign
 start | end
 left | center | right
 textBaseline
 top | hanging | middle | bottom | alphabetic
 measureText(text)
 Обтекание текстом
 Файл labscanvastext-wrap.html
 translate(x, y)
 scale(byX, byY)
 rotate(degrees)
 transform(scaleX, skewX,
skewY, scaleY,
x, y2)
 setTransform(scaleX, skewX,
skewY, scaleY,
x, y2)
 save()
 restore()
 globalAlpha = число
 clip()
 globalCompositeOperation
 source-over | destination-over
 source-atop | destination-atop
 source-in | destination-in
 source-out | destination-out
 lighter | xor | copy
 drawImage(image, x, y)
 drawImage(image, x, y, width, height)
 drawImage(image, sX,sY,sW,sH, dX,dY,dW,dH)
 Использование спрайтов в анимации
 Файл labscanvassprite.html
 var d = context.getImageData(x1, y1, x2, y2)
 context.putImageData(d, x, y)
 context.createImageData(width, height)
 Инвертирование цветов
 Файл labscanvasinvert.html
 canvas.toDataURL(type, quality)
 HTML-элемент Canvas
 Объект Context
 Рисование прямых и кривых
 Рисование примитивов
 Использование визуальных эффектов
 Использование изображений

More Related Content

Similar to JavaScript. Уровень 3г. HTML5 API

Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java scriptNoveo
 
Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"
Yandex
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
Pavlo Iuriichuk
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4Technopark
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock
Bohdan Danyliuk
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭOleg Parinov
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
DevGAMM Conference
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
Timur Shemsedinov
 
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Ontico
 
Вебинар "Оптимизация производительности мобильных веб-приложений"
Вебинар "Оптимизация производительности мобильных веб-приложений"Вебинар "Оптимизация производительности мобильных веб-приложений"
Вебинар "Оптимизация производительности мобильных веб-приложений"MobiDev
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)
AvitoTech
 
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
GeeksLab Odessa
 
Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"
Yandex
 
Squeek 1
Squeek 1Squeek 1
Squeek 1
Oleg Parinov
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10Technopark
 
Scala on android
Scala on androidScala on android
Scala on android
Valeriya Atamanova
 
Native Development
Native DevelopmentNative Development
Native Development
Alexander Shaubert
 
Performance optimisation in javascript
Performance optimisation in javascriptPerformance optimisation in javascript
Performance optimisation in javascript
Артем Захарченко
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
Igor Shkulipa
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
Noveo
 

Similar to JavaScript. Уровень 3г. HTML5 API (20)

Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java script
 
Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"Александр Тармолов "API Яндекс.Карт"
Александр Тармолов "API Яндекс.Карт"
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 
Web весна 2013 лекция 4
Web весна 2013 лекция 4Web весна 2013 лекция 4
Web весна 2013 лекция 4
 
2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock2014 Jeeconf - Geb Spock
2014 Jeeconf - Geb Spock
 
2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ2-е занятие курса iPhone разработки в ГУ-ВШЭ
2-е занятие курса iPhone разработки в ГУ-ВШЭ
 
Convert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at VizorConvert this: peculiarities of cross-platform mobile game development at Vizor
Convert this: peculiarities of cross-platform mobile game development at Vizor
 
Node.js введение в технологию, КПИ #ITmeetingKPI
Node.js введение в технологию, КПИ  #ITmeetingKPINode.js введение в технологию, КПИ  #ITmeetingKPI
Node.js введение в технологию, КПИ #ITmeetingKPI
 
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
Интерактивные 3D-карты своими руками / Александр Амосов (Avito)
 
Вебинар "Оптимизация производительности мобильных веб-приложений"
Вебинар "Оптимизация производительности мобильных веб-приложений"Вебинар "Оптимизация производительности мобильных веб-приложений"
Вебинар "Оптимизация производительности мобильных веб-приложений"
 
"Погружение в Robolectric" Дмитрий Костырев (Avito)
"Погружение в Robolectric"  Дмитрий Костырев (Avito)"Погружение в Robolectric"  Дмитрий Костырев (Avito)
"Погружение в Robolectric" Дмитрий Костырев (Avito)
 
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким ХалиловWebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
WebCamp: Developer Day: Parse'им бэкенд - Аким Халилов
 
Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"Фёдор Голубев "API Яндекс.Карт"
Фёдор Голубев "API Яндекс.Карт"
 
Squeek 1
Squeek 1Squeek 1
Squeek 1
 
Web весна 2013 лекция 10
Web весна 2013 лекция 10Web весна 2013 лекция 10
Web весна 2013 лекция 10
 
Scala on android
Scala on androidScala on android
Scala on android
 
Native Development
Native DevelopmentNative Development
Native Development
 
Performance optimisation in javascript
Performance optimisation in javascriptPerformance optimisation in javascript
Performance optimisation in javascript
 
JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.JavaScript Базовый. Занятие 11.
JavaScript Базовый. Занятие 11.
 
iOS-05_2-UIKit
iOS-05_2-UIKitiOS-05_2-UIKit
iOS-05_2-UIKit
 

JavaScript. Уровень 3г. HTML5 API