- •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.
44. Платформа Node.Js и ее возможности. Программирование на стороне сервера.
Node.js – это серверная реализация языка программирования JS, основанная на движке V8 (движок от Google, самый крутой, быстрый и мощный, в котором JS-код напрямую преобразуется в ассемблер целевого процессора, что позволяет обойти по скорости все остальные движки).
Преимущества Node.js
1) однопоточная модель. Все операции выполняются в одном и том же потоке ОС, даже если у твоего сервера тысяча одновременных пользователей. Для реализации многопоточности и задействования всех ядер современных процессоров рекомендуется просто загружать несколько копий приложени. Не думай, что раз нет многопоточности -это тормоз и отстой. Вспомни, что веб-приложение делает полезную работу очень быстро, а большую часть времени просто ожидает чего-то (данных от базы), либо просто держит в памяти открытые соединения, поэтому в одном потоке можно обработать и десяток тысяч.
2) событийность. Почти каждая операция имеет коллбэки, генерирует событие, а пользователю доступен объект Event, через который можно буквально одной строкой генерировать события (событие -это просто строка с названием, а также список параметров, которые передаются в обработчик).
Цикл выполняется вне JS, а в самом движке, написанном на C, вследствие чего это происходит очень быстро (порядка сотен тысяч раз в секунду). Что-то типа бесконечного цикла. В дополнение к этому в сервер встроен очень эффективный сборщик мусора (GC), поэтому даже тысячи подключений не вызывают переполнения памяти и падения сервера.
Чтобы запустить Node.js приложение в Windows необходимо скачать последнюю версию платформы с оф. сайта. После установки программы выбирать системную папку, где будет хранится исходные файлы.
Создадим простое приложение Node.js с названием "helloworld.js. Пример кода:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at
<a href="http://127.0.0.1:1337/'">http://127.0.0.1:1337/'</a>);
Этот код создает веб-сервер с портом 1337 и возвращает сообщение “Hello World”. Вводим команду node helloworls.js в консоле и открываем браузер с адресом http://localhost:1337/.
При использовании Node.js мы не создаем веб-приложение, а проектируем полноценный веб-сервер. Поэтому одно из главных преимуществ использования Node.js является то, что он легкий и простой в использовании.
45. Использование документно-ориентированных баз данных в js. Организация хранения данных на примере MongoDb.
CouchDB -ДОСУБД с открытым исходным кодом, не требующая описания схемы данных, распространяется свободно, написана на языке Erlang. Для хранения данных используется JSON, для реализации запросов - JS.Одной из особенностей СУБД является поддержка репликации с несколькими ведущими узлами.
CouchDB можно рассматривать как сервер веб-приложений; для реализации этой идеи в CouchDB встроен производительный веб-сервер, а программный код, как и данные, сохраняется в той же БД. Для автоматизации работы с приложениями используется утилита CouchApp.
LokiJS - ДОБД на клиентской стороне JS.
MongoDB –ДОСУБД, ориентированная на кластеризацию и написанная на C++.
Документы в Mongo хранятся в виде JSON-подобных объектов, так что в JS с ними работать довольно удобно.
В MongoDB проходить по эл-м коллекции можно с помощью итератора, необязательно доставать элементы по одному.
Курсор нужен для того чтобы запрашивать объекты из MongoDB по мере необходимости. Т.е., новый документ будет получен только после того как будет вызван each()/nextObject()/toArray().
Удаление документов из коллекции:
db.collection('test', function(err, collection) {
// Удаляем элементы с age = 20
collection.remove({'age': 20}, function(err, collection) {
// Удаляем все элементы
collection.remove(function(err, collection) {
// Все элементы удалены }); }) });
При сохранении документа в MongoDB ему назначается _id.
Кроме этого, в MongoDB есть много других интересных вещей: хранение двоичных файлов, ссылки на документы в других коллекциях (аналог foreign key в SQL), поддержка индексов. MongoDB выглядит очень удобной базой данных для приложений разной сложности.
