Внедрение системы веб аналитики в информационный сайтRezonans
Зачем нужна веб-аналитика. Что мы знаем о посетителях сайта? Какие показатели можем узнать используя Google Analytics? Интересные факты, примеры использования инструмента веб-аналитики..
Презентация мастер-класса "Создание динамических пользовательских интерфейсов и AJAX-приложений промышленного класса с помощью Dojo Toolkit и Zend Framework"
1. Контроллеры в Django
2. Объекты HttpRequest и HttpResponse
3. Получение GET и POST параметров
4. Работа с HTTP заголовками в Django
5. Декораторы
6. Шаблонизация в Django
7. Наследование шаблонов
8. Context processors
Внедрение системы веб аналитики в информационный сайтRezonans
Зачем нужна веб-аналитика. Что мы знаем о посетителях сайта? Какие показатели можем узнать используя Google Analytics? Интересные факты, примеры использования инструмента веб-аналитики..
Презентация мастер-класса "Создание динамических пользовательских интерфейсов и AJAX-приложений промышленного класса с помощью Dojo Toolkit и Zend Framework"
1. Контроллеры в Django
2. Объекты HttpRequest и HttpResponse
3. Получение GET и POST параметров
4. Работа с HTTP заголовками в Django
5. Декораторы
6. Шаблонизация в Django
7. Наследование шаблонов
8. Context processors
Вёрстка WordPress тем - WP Kharkiv Meetup #1dima_kuzovlev
Из чего состоит тема? Зачем нужна дочерняя тема? Что такое иерархия шаблонов? Какие есть тонкости подключения CSS & JS? Для чего не стоит использовать functions.php?
2. Progressive Enhancement Всё содержание сайта доступно в любом браузере Вся функциональность доступна в любом браузере Семантическая верстка Представление отделено от содержания за счёт внешнего CSS Поведение отделено от содержания за счёт « Unobtrusive » JavaScript
3. Ненавязчивый JavaScript Главные принципы : весь JS- код находится во внешнем файле обработчики событий добавляются после загрузки страницы с помощью специальных функций стили добавляются за счёт атрибутов class и id , а не за счёт прямого указания значений внутри JavaScript -функций
6. Поиск необходимого элемента <ul id= " menu " > <li><a href= " /about " > О компании </a></li> <li><a href= “ / products " > Продукция </a></li> <li><a href= " /contacts " > Контакты </a></li> </ul> function getMenuLinks(){ var parentObj = document.getElementById('menu'); var menuLinks = parentObj.getElementsByTagName('a'); return menuLinks ; }
7. Поиск необходимого элемента <input class="required" name="email" /> <input class="required" name="phone" /> function getRequired(){ var inputs = document.getElementsByTagName('input'); var requiredInputs = new Array; for ( var i = 0; i < inputs.length; i++ ) { if ( inputs[i].className.match('required‘) ) requiredInputs.push(inputs[i]); } return requiredInputs; }
11. Добавление обработчика function addEvent(obj, evType, func, useCapture){ if (obj.addEventListener){ obj.addEventListener(evType, func, useCapture); return true; } else if (obj.attachEvent){ var r = obj.attachEvent('on'+evType, func); return r; } else { obj['on'+evType] = func; } }
12. Отмена исходного действия DOM event model: preventDefault stopPropagation MSIE: window.event.returnValue window.event.cancelBubble
13. Отмена исходного действия function cancelDefault(e){ if ( e && e.preventDefault && e.stopPropagation() ){ e.stopPropagation(); e.preventDefault(); } if ( window.event ){ window.event.cancelBubble = true; window.event.returnValue = false; } }
14. Источник события DOM Event Model e.target MSIE window.event.srcElement if ( window.event && window.event.srcElement ){ elem = window.event.srcElement; } else if ( e && e.target ) { elem = e.target; } else { return; }
15. AJAX Сначала не- AJAX версия Добавьте обработчики событий, которые вместо ссылок и кнопок будут пересылать данные на сервер через XMLHttpRequest Используте атрибуты href и action Для простоты используйте AHAH ( Asy n chronous HTML and HTTP )