Javascript и AJAX. Изучение языков и web-технологий Javascript и AJAX. Изучение языков и web-технологий

Рабочий конспект изучения языков и web-технологий: Javascript и AJAX

 
Мистический роман
БЛИЗКАЯ ДАЛЬ
Татьяны Катушонок

Купить в магазинах:
Близкая даль
Близкая даль
Близкая даль
Близкая даль
Близкая дальБлизкая даль
Озарение души
Сборник стихов Татьяны Катушонок
Осознание красоты спасет мир
Web technologies and programming languages
Web технологии и языки
PHP
Изучаем PHP
Клиент-сервер
XML - XSLT
Изучаем XML
Преобразования
HTML
Изучаем HTML
Теги
Javascript и AJAX
Три кита
Основы языка
DOM
Прогулка по DOMу
Events and Listeners
Список событий
Events in JQuery
Google JQuery
Новый синтаксис JQuery
Selectors
Слайд-шоу

Примеры jQuery
All Selector(*)
:animated Selector




3.2 Прогулка по DOMу. Доступ к элементам.
понедельник
Просто рабочий конспект
Перемещение по html-документу с помощью стандартных функций доступа.

По ID элемента и по имени:
    document.getElementById("id")
    document.getElementsByTagName("tagname")

    Надо всегда выполнять проверку на null для getElementById:

    var target = document.getElementById("sender");
    if (target != null)
    {
    alert(target.nodeName);
    }
    а для getElementsByTagName - длину массива = 0:

    var listItems = document.getElementsByTagName("li");
    var numItems = listItems.length;

    Первое время спотыкался в названии функции getElementByTagName вместо getElementsbyTagName и в правильном верхнем/нижнем регистрах названий функций. Напишешь вроде бы правильно - а ничего не работает...

    Сужение списка элементов.
    Получаем более общий список, а затем внутри применяем ту же функцию getElementsByTagName:
    var lists = document.getElementsByTagName("ul");
    var secondList = lists[1];
    var secondListItems = secondList.getElementsByTagName("li");

    Массив ВСЕХ элементов html страницы:

    var elementArray = [];
    if (typeof document.all != "undefined") {
    elementArray = document.all;
    }
    else {
    elementArray = document.getElementsByTagName("*");
    }

    Поиск элемента по имени класса.
    Стандартной функции нет, поэтому разные библиотеки предлагают свои.Вот пример реализации:

    Core.getElementsByClass = function(theClass) {
    var elementArray = [];
    if (document.all) {
       elementArray = document.all;
    } else {
       elementArray = documentGetElementsByName("*");
    }
    var matchedArray = [];
    var pattern = new RegExp("(^| )" + theClass + "( |$)");
    for (var i = 0; i < elementArray.length; i++) {
        if (pattern.test(elementArray[i].className)) {
            matchedArray[matchedArray.length] = elementArray[i];
        }
    } return matchedArray;
    };

    Через свойства DOM элемента можно найти родительский элемент, дочерние, соседей:
    var oliver = document.getElementById("oliver");
    var paragraph = oliver.parentNode;
    var child1 = paragraph.childNodes[0];
    var alex = paragraph.firstChild;
    var jone = paragraph.lastChild;
    var tom = alex.nextSibling;
    var ann = tom.previousSibling;

    Вот такая прогулка по ДОМу...

    Walking the DOM



    Ярлыки: , , ,

    Подпишись на новости Javascript и AJAX по e-mail
    posted by Sergey @ 06:50   0 comments
    3.1. DOM. Document Access.
    четверг
    Просто рабочий конспект
    Для доступа, создания, манипуляций с частями документа консорциумом W3C была создана Document Object Model (DOM) - система, позволяющая скриптам воздействовать на документ. С её помощью javascript может не только изменять структуру документа, но и получать доступ к стилям документа и изменть его вид.
    Как только браузер загрузил документ (просто как последовательность символов), он начинает разбирать его и сохраняет интерпретацию html-кода в виде дерева DOM.
    Согласно этой модели, каждый элемент HTML- документа становится объектом.
    Javascript может получить доступ к этим элементам с пом. встроенных функций на лету. DOM связывает каждый созданный объект для элемента HTML с соответствующим родителем/потомком.

    Для построения DOM документа каждомый элемент в html представляется в виде node с позицией, определяемой нодами родителей/потомков. Каждый element node х-зуется именем элемента (head,body,h1,...), но это имя не уникально. Уникальность обеспечивается, например, атрибутом id. На вершине дерева всегда находится document node.

    КликниZoom-in buttonилиZoom-out buttonчтобы увеличить/уменьшить изображение...
    DOM walk

    В перевод node - узел, но как-то звучит не очень. Буду исп. оригинальную терминологию. Element nodes - один из видов nodes, соответствующий элементам HTML. Однако действительный контент документа находится в других нодах - text nodes и attribute nodes.
    Всё, что расположено между угловыми скобками ><, относится к text node в DOM.
    Основное отличие от elemеnet nodes: text nodes не имеют потомков!

    Следует обратить внимание, что пробелы, новая строка, возврат каретки могут образовывать text nodes. Такие
    text nodes по-разному обрабатываются разными браузерами.

    Attribute nodes являются частью html элементов (element nodes). Но они не являются потомками element nodes.

    Ярлыки: ,

    Подпишись на новости Javascript и AJAX по e-mail
    posted by Sergey @ 00:04   0 comments
    2. Программирование на Javascript
    Просто рабочий конспект
    В теле HTML код Javascript размещается внутри тега <script>:


    <head>
    ...
    <script type="text/javascript">
    ...
    </script>
    ...
    </head>

    Если скрипт в отдельном файле, то указываем ссылку:

    <script type="text/javascript"> src="example.js"
    </script>

    Скрипт выполняется сразу после его загрузки браузером.

    Объявление переменных.
    Безопаснее всегда использовать ключевое слово var при объявлении переменной.

    Javascript не заботится о том, что хранится в переменной. Одна и таже переменная может хранить символ, затем число, затем снова текст или что-угодно.
    Определены 4 типа переменых:
    • числа
    • строки
    • логический тип
    • массивы
    • объекты
    Операторы ++ и --- как в Си:
    age++;
    --j;

    Конкатенация строк:
    var sentence = "You are " + 1337

    Логические:
    var lying = true;
    var truthful = false;

    Массив:
    var rack = [];
    rack[0] = "First";
    rack[1] = "Second";

    var rack = ["First", "Second", "Third", "Fourth"];
    var numberArray = [1, 2, 3, 5, 8, 13, 21, 34];
    var mixedArray = [235, "Parramatta", "Road"];

    Многомерный массив:
    var subArray1 = ["Paris", "Lyon", "Nice"];
    var subArray2 = ["Amsterdam", "Eindhoven", "Utrecht"];
    var subArray3 = ["Madrid", "Barcelona", "Seville"];
    var superArray = [subArray1, subArray2, subArray3];

    Обращение к элементу :
    var city = superArray[0][2];

    Наиболее часто исп. св-в- массива - его длина:
    var shortArray = ["First", "Second", "Third"];
    var total = shortArray.length;

    var lastItem = shortArray[shortArray.length – 1];

    Добавление нового элемента:
    shortArray[shortArray.length] = "Fourth";

    Ассоциативные массивы (хэши):
    var postcodes = [];
    postcodes["Armadale"] = 3143;
    postcodes["North Melbourne"] = 3051;
    postcodes["Camperdown"] = 2050;
    postcodes["Annandale"] = 2038;

    Стандартные if-else, while, do while, for().

    Передача аргументов функции:

    function sandwich(bread, meat)
    {
    alert(bread + meat + bread);
    }

    sandwich("Rye", "Pastrami");

    Также аргументы функции доступны через массив arguments:

    debate("affirmative", "negative");

    function debate()
    {
    var affirmative = arguments[0];
    var negative = arguments[1];
    }

    Возврат значения из функции - return:

    Область видимости переменых. Переменные, объявленные вне функции, доступны другим функциям javascript в пределах той же html-страницы. Это global scope.
    С помощью ключевого слова var переменные обявляются внутри функции как local scope и доступны только внутри данной функции.

    ОБЪЕКТЫ.
    Представляют собой амальгаму всех других типов данных.
    Объкты существуют как способ организации переменных и функций в логические группы.
    Свойства объекта предст. собой переменные, доступные только через объект.
    Методы - это функции, доступные только через объект.
    Примером встроенного объекта является массив.

    Создание объекта:
    var Robot = new Object();

    Теперь можно добавлять к объекту свойства и методы:
    Robot.color ="red";
    Robot.displayMessage = function() {
    alert("Some message");
    }; //обязательно точка запятой при таком объявлении!

    Вызов: Robot.displayMessage();

    Использование литерального синтаксиса объекта:

    var Robot =
    {
    color: "red",
    displayMessage: function()
    {
    alert("Some message");
    }
    }; //обязательно точка запятой !

    Unobtrusive Scripting in the Real World
    В большинстве случаев, практически всегда, код javascript загружается раньше кода всей html-страницы. Это может привести к некоторым незначительным проблемам. Браузеры выполняют код javascript сразу после его загрузки, не дожидаясь загрузки всей страницы. Если в коде есть обращение к элементов, которые ещё не загрузились, то можно не увидеть ожидаемого эффекта.
    Для облегчения жизни создаётся специальный объект Core с методом start(), который наблюдает за статусом загрузки страницы и сообщает нашей функции, когда можно безопасно выполняться. Это делается вызовом метода init() нашего объекта.
    Т.о., наш объект выглядит :

    var Robot = {
    init: function()
    {
    Your HTML modifying code
    }
    };
    Core.start(Robot);

    Ярлыки: ,

    Подпишись на новости Javascript и AJAX по e-mail
    posted by Sergey @ 00:03   0 comments
    1.Три кита построения web-приложений
    Просто рабочий конспект
    The Three Layers of the Web

    На схеме представлены три кита www:
    The Three Layers of the Web

    Грамотный подход в web-дизайне - использование 3-х уровней:
    1. Content - HTML
    2. Presentation - CSS
    3. Behaviour - JavaScript
    Другими словами, the separation of concerns (отделение мух от котлет...).

    Раздельное хранение этих 3-х типов кода - упрощает повторное использование, сокращает дублирование и облегчает поиск ошибок.
    Javascript изнутри значительно больше, чем он кажется снаружи - как Tardis языков программирования.

    Наиболее популярные библиотеки javascript:

    Prototype http://www.prototypejs.org
    script.aculo.us http://script.aculo.us
    Yahoo! User Interface Library http://developer.yahoo.com/yui

    Dojo http://dojotoolkit.org
    jQuery http://jquery.com
    MooTools http://mootools.net

    Ярлыки: , , ,

    Подпишись на новости Javascript и AJAX по e-mail
    posted by Sergey @ 00:00   0 comments
    Близкая даль
    Подпишись на новости Javascript и AJAX письмом:

    Напишите ваш e-mail :

    Delivered by FeedBurner

    Предыдущий пост
    Архив
    Линки
    Статистика

    Subscribe in a reader

    Powered by FeedBurner

    BLOGGER

    © Javascript и AJAX. Изучение языков и web-технологий