25
JavaScript: манипулирование элементами DOM и асинхронные запросы Разработчики. Занятие 9

Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

  • Upload
    7bits

  • View
    264

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

JavaScript: манипулирование элементами DOM и

асинхронные запросы

Разработчики. Занятие 9

Page 2: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

JavaScript

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

Page 3: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

JavaScript != Java

Page 4: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

ECMAScript

Ядро языка – спецификация ECMAScript

ECMAScript 6 (декабрь 2014)

Page 5: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Популярность JavaScript

https://github.com/languages

Page 6: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Что умеет JavaScript?

• Создавать новые HTML-теги, удалять существующие, менять стили элементов, прятать, показывать элементы.

• Реагировать на действия посетителя• Посылать запросы на сервер (AJAX)• Получать и устанавливать cookie,

запрашивать данные, выводить сообщения

Page 7: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Что не умеет JavaScript?

• работать с памятью, процессором• читать/записывать файлы на жесткий

диск• вызывать программы• нет доступа к операционной системе

Page 8: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

jQuery

jQuery – библиотека JavaScript, фокусирующаяся на взаимодействии JavaScript и HTML.

jQuery CDNhttp://jquery.com/download/

Page 9: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Чистый (pure) JavaScript и JQuery

Особенности jQuery:

• Совместимость с браузерами• Упрощение сложных операций• Простая манипуляция с DOM• Требуется время на загрузку

библиотеки• Много библиотек на jQuery

Page 10: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Подключение скриптов

<html> <head> <script src=js/file.js></script> </head> ...</html>

Page 11: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Подключение скриптов

Page 12: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Использование jQuery

Функция $()Все вызовы выполняются через функцию $

Примеры:$("div a")$("ul li")[0]$("a").first(), $("a").last()$("#login").is(":hidden")

Page 13: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Использование jQuery, работа с DOM

addClass()hasClass()

removeClass()attr()css()

append()prepend()remove()

Page 14: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Выполнение js-кода

alert("boom")

$(document).ready(function() { alert("boom")})

$(window).load(function() { alert("boom")})

Page 15: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

jQuery: пример

$(document).ready(function() { $('nav a').addClass('active') $('#login').slideDown()})

Page 16: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

jQuery: события

.bind()

.click()

.focus()

.focusin()

.focusout()

.keypress(), keydown(), keyup().mouseenter(), mouseleave().scroll()

Page 17: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

jQuery: события

$('#main').mouseenter(function() { alert($('input#name').val()) })

Объект this:$('#main').mouseenter(function() { $(this).remove()})

Page 18: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

AJAX

AJAX (Asynchronous Javascript and XML) — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в фоновом обмене данными браузера с веб-сервером.

Преимущества:• Экономия трафика• Уменьшение нагрузки на сервер• Ускорение реакции интерфейса• Autocomplete, подсказки и др.

Page 19: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

AJAX (frontend) $.ajax({ url: "ajax.php", type: "post", data: someData, dataType: "json", success: function(data){ alert("success"); }, error: function(){ alert("failure"); } })

Page 20: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

JSONJSON – формат обмена данными, основанный на JavaScript. { "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "Московское ш., 101", "city": "Ленинград", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ]}

Page 21: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Чтение полей форм

cityValue = $(‘form input#city’).val()ageValue = $(‘form input#age’).val()

someData = { city: cityValue, age: ageValue}

Page 22: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

someData = $(‘form#myform’).serialize()

Чтение полей форм

Page 23: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

AJAX (backend)

• Необходимо генерировать ответ (JSON или HTML)

• Необходимо установить HTTP статус-код ответа.

Для генерации ответа в JSON формате:

$data = array('foo'=>'bar');echo json_encode($data);

Page 24: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Что посмотреть/почитать?

• An overview of ECMAScript 6, the next version of JavaScript

• JavaScript Patterns• Учебник javascript.ru• JavaScript Garden• Уроки jQuery на Codeschool.com

Page 25: Стажировка-2013, разработчики, занятие 9. DOM, JS, AJAX

Задание

• Выполнить верстку по PSD макету дизайнера.