- •1.Архитектура Клиент-Сервер. Взаимодействие клиента и сервера в сети интернет. Основные понятия языков разметки: sgml, html, xhtml, dhtml, xml.
- •2.Програмное обеспечение клиента и сервера. Взаимодействие веб-клиента и серверного программного обеспечения. Протоколы обмена данными.
- •5. Язык js. Его возможности и ограничения. Лексемы. Идентификаторы. Ключевые слова и зарезервированные слова. Типы данных. Произведение типов. Константы. Переменные.
- •6. Локальные и глобальные переменные. Массивы. Обработка элементов массива и способы вывода результата. Организация ассоциативных массивов в js.
- •7. Массив как объект. Встроенные методы для работы с массивами. Добавление и удаление элементов массива.
- •8. Каскадные таблицы стилей css: основные понятия и определения. Селекторы, свойства, аргументы. Селекторы тэгов. Классы стилей. Способы подключения таблицы стилей. Возможности css3.
- •9. Интерактивное управление динамическим состоянием объектов. Псевдоклассы и псевдоэлементы.
- •10. Условные операторы if, if…else. Оператор switch. Способы обработки исключительных ситуаций. Оператор instanceof в js.
- •11. Операторы цикла for, for..In, while, do..While, break, continue.
- •12. Понятие функций в js. Создание функций. Использование параметров. Передача объекта по ссылке в функциях.
- •13. Встроенные функции в объекты js (window, document, array и др.). Встроенные функции для взаимодействия с пользователем в js.
- •14. Рекурсивные функции и анонимные функции в js. Функции как объекты. Их назначение и примеры использования. Функции обработанного вызова (callback). Их назначение и параметры использования.
- •15. Объекты js. Понятие объекта. Виды объектов. Создание пользовательских объектов js, и работа с ним.
- •1. Создание прямого экземпляра объекта
- •2. Создание конструктора объекта
- •16. Наследование в js на основе концепций прототипноориентированного языка. Свойство prototype. Добавление свойств и методов к конструкторам объектов.
- •17. Создание и наследование классов в js на основе стандартов Ecma 6.
- •18. Свойства объектов, методы, события. Добавление, удаление, доступ к свойствам. Создание конструкторов и их роль для новых свойств объектов.
- •19. Встроенные методы для работы со строковыми объектами. Работа с регулярными выр-ми. Возможности обработки строковых данных в js.
- •20. Браузеры и их функциональные возможности. Особенности реализации web-приложений в разных браузерах. Иерархия объектов браузера.
- •21. Понятие и структура bom. Объекты верхнего уровня.
- •22. Работа с окнами. Объект Window. Свойства окна. Создание, открытие и закрытие окон. Основные методы и свойства окон.
- •23. Понятие иерархической модели dom. Варианты поиска элементов.
- •24. Определение событий формы. Создание элементов формы. Методы для работы с формами.
- •25. Использование набора многократно используемых объектов и функций библиотек js (jQuery, Prototype, Mootools, Dojo) при разработке веб-приложений.
- •26. Работа с событиями экрана, клавиатуры, мыши в js. Добавление метода в html dom addEventListener().
- •27. Хранение данных на стороне клиента. Виды хранения. Преимущества и недостатки сохранения данных на стороне клиента.
- •Cookie - это специальные файлы, создаваемые веб - сервером и хранящиеся на компьютере клиента. Данные передаются серверу и обратно. Плюс – простота.
- •Технология Web Storage
- •28. Особенности использования Cookie в js. Сохранение и уничтожение данных с помощью Cookie.
- •29. Использование html5 Application Cache для хранения данных на стороне клиента. Возможности и ограничения html5 Application Cache.
- •30. Использование html5 Web Storage для сохранения данных на клиентской стороне. Локальное и сессионное хранилище, их создание, использование и особенности.
- •31. Технология Ajax для передачи данных в фоновом режиме. Объект xmlHttpRequest. Обработка ответов от сервера.
- •32. Особенности хранения данных с помощью WebSql. Метод executeSql(). Организация табличного хранения данных. Внесение и удаление данных из таблиц.
- •34. Особенности применения паттернов проектирования (mvc,mvvm,mvp) в js.
- •35.Использование паттерна mvp на основе библиотек Backbone и AngularJs.
- •37. Технология динамического обращения к серверу без перегрузки всей страницы. Передача данных на страницу данных в формате html, .Txt, xml и json.
- •38. Особенности функционального программирования в js. Метод bind(), немедленно вызываемые функции, самоопределяющиеся функции.
- •39. Функции замыкания и обратного вызова (callback) в js. Роль функций обратного вызова в организации асинхронного обмена данными (на примере Node.Js).
- •40. Управление зависимостями: принципы модульного программирования в js. Концепции amd.
- •41. Использование модульного подхода к программированию в js на примере работы с библиотекой Require.Js.
- •42. Менеджер задач (на примере Grunt). Варианты заданий.
- •43. Назначение и функции пакетных менеджеров Bower и npm.
- •44. Платформа Node.Js и ее возможности. Программирование на стороне сервера.
- •45. Использование документно-ориентированных баз данных в js. Организация хранения данных на примере MongoDb.
- •46. Ключевые моменты оценки качества веб-проектов. Практические методы client-side оптимизации.
- •1.Архитектура Клиент-Сервер. Взаимодействие клиента и сервера в сети интернет. Основные понятия языков разметки: sgml, html, xhtml, dhtml, xml.
32. Особенности хранения данных с помощью WebSql. Метод executeSql(). Организация табличного хранения данных. Внесение и удаление данных из таблиц.
Web SQL
Создание/открытие БД:
db = openDatabase("ToDo", "0.1", "A list of to do items.", 200000);
Успешность подключения к БД:
if(!db){alert("Failed to connect to database.");}
Выполнение запросов.
Для выполнения запросов к БД надо создать транзакцию, вызвав функцию database.transaction(). У неё один аргумент, а именно другая JS функция, принимающая объект транзакции и предпринимающая запросы к БД.
Сам SQL запрос можно выполнить, вызвав функцию executeSql объекта транзакции. Она принимает 4 аргумента:
• строка SQL запроса
• массив параметров запроса (параметры подставляются на место вопросительных знаков в SQL запросе)
• функция, вызываемая при успешном выполнении запроса
• функция, вызываемая в случае возникновения ошибки выполнения запроса
Пример работы функции executeSql ниже:
db.transaction(function(tx) {
tx.executeSql("SELECT COUNT(*) FROM ToDo", [], function(result){}, function(tx, error){}); });
Вставка данных:
db.transaction(function(tx) {
tx.executeSql("INSERT INTO ToDo (label, timestamp) values(?, ?)", ["Купить iPad или HP Slate", new Date().getTime()], null, null); });
Вы можете получить доступ к какой-либо строке результата вызвав функцию result.rows.item(i), где i – индекс строки. Далее, для получения требуемого значения, нужно обратиться к конкретному столбцу по имени – result.rows.item(i)[ «label»].
db.transaction(function(tx) {
tx.executeSql("SELECT * FROM ToDo", [], function(tx, result) { for(var i = 0; i < result.rows.length; i++) {
document.write('<b>' + result.rows.item(i)['label'] + '</b><br />'); }}, null)});
Вставка данных:
db.transaction(function(tx) {
tx.executeSql("INSERT INTO Subscribers VALUES (" + id + ", '" + surname + "', " + number + ", '" + address + "', " + debts + ")", [], function(result) {
alert("Абонент добавлен");
}, function(tx, error){
alert(error.message);
});
Удаление данных
db.transaction(function(tx) {
tx.executeSql("DELETE FROM Subscribers WHERE id="+id_group, [], function(result) {
alert("Абонент удален");
}, function(tx, error){
alert(error.message); });});
33. Преимущества и механизм использования шаблонизаторов в JS (Mustache\Handlebars, EJS, Jade). Генерация HTML-структуры с помощью шаблонизатора Mustache.js.
Шаблонизатор – приложение, осуществляющее обработку шаблона.
Плюсы:
• Четкое разделение данных и представление этих данных;
• Можно использовать на серверной стороне, а также скомпилировать в js-код и отрисовывать в браузере данные, стянутые с помощью AJAX;
• Приятно работать с одним шаблонизатором в разных проектах, на разных платформах;
Минусы:
• Вынуждает городить отдельные модули для какой-то мелкой фигни;
• Если код шаблона содержится прямо в коде html-странице, сделает её не валидной, и многие редакторы кода будут ругаться и плохо работать с кодом таких шаблонов.
Для использования mustache.to_html(shablon, data1) необходимо подключить библиотеку mustache на рабочую html-страницу.
Пример:
$('#but1').on('click', function(){
var shablon =
"<tr><td>{{name}}</td><td>{{depart}}</td><td>{{dols}}</td><td>{{zarpl}}</td></tr>"; //Шаблон
var data1 = { //данные для заполнения шаблона
name: "Николай",
depart: "Отдел №1",
dols: "Дворник",
zarpl: function(){
var tariff = $("[name = employee]:eq(0) > #tariff").val();
var econom = $("[name = employee]:eq(0) > #econom").val();
var nadbav = $("[name = employee]:eq(0) > #nadbav").val();
var slozn = $("[name = employee]:eq(0) > #sloz").val();
return count_slozn.count(count_nadbav.count(count_econom.count(count_tariff.count(292000, tariff), econom), nadbav), slozn);} };
var insert = mustache.to_html(shablon, data1); //Формирование html на основании шаблона и данных
$('#insert').append(insert); //Вставка html-кода на страницу });
