Експресивен JavaScript: Описание на функцията

Историята на хипертекста, спецификата на HTML, CSS, разликите в браузърите и характеристиките на мобилните устройства се отразяват върху стила на интернет програмирането, и по-специално на javascript (JS). Характеристиката на съвременните високи технологии "не разбра, не направи" на JS има пряка връзка. Това обаче не бива да се случва. JS е чудесен език за програмиране, който изисква уважение към вас, а от програмист - внимателност и точност.

[thumb] http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_881.jpeg
Преди да потвърди присъствието на взрив на езика или проблеми в браузъра, трябва да сте абсолютно сигурни, че алгоритъмът е безупречен, както по отношение на синтаксиса, така и по отношение на семантиката.

Обща идея за javascript

Основната област на "живия" JS е браузър. Може да се каже, че основната му цел е да обслужва дървото на страниците - DOM, но няма да е много пълно и точно. Отличителен javascript е задача за правилното показване на страницата и нейното правилно функциониране.


Статичните страници отдавна са забравени и динамиката на всички елементи на сайта е станала норма. Характерното желание на съвременните представяния е една страница, която динамично се променя в зависимост от поведението на посетителя. Това обстоятелство обикновено не е типично за CMS (системи за управление на сайтове), които са съвкупност от множество страници, съчетаващи PHP, Perl, API на различни услуги, jQuery и други инструменти.
[thumb] http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_662.jpeg
ниша. Този език е идеално конфигуриран да гарантира функционалността на страницата, осигурява проста връзка между страниците на един сайт, ви позволява да превключите на други сайтове, да изтеглите всякакви страници в браузъра, да работите с различни сървъри.


Няма такова събитие, което да не може да се осъществи с този език. На практика всички популярни HTML тагове ви позволяват да дефинирате необходимата функционалност, която експресивният javascript оживява, почти паралелно изпълнение. Това предполага фундаментална разлика в стила на "писма до JS" от други програмни езици: няма такъв единен алгоритъм. Експресивен javascript - решаване на проблеми в специален функционално съвършен стил.

Езикова функционалност и странични събития

Съгласно общата логика на програмирането, трябва да бъде алгоритъм на всеки език:
  • описание на данните;
  • описание на алгоритъма.
  • Първото традиционно не е типично, т.е. не е необходимо да се описват данните преди тяхното използване, а дори и да се описва променливата, няма абсолютно никаква нужда да се уточнява нейният тип. Вторият не винаги се използва: кодът за инициализация на данните и техният код се обработват. Експресивният javascript води разработчика на напълно различна позиция. Страницата на сайта, влизайки в браузъра, се превръща в дърво на обекти - DOM. Почти всеки DOM обект (т.е. страници) може да бъде присвоен на събитие. Формално, страницата се преобразува в състав:
  • обекти;
  • събития;
  • функции на JS.
  • Тъй като страница винаги е семантично завършен елемент на уеб ресурс, събитията, които инициирателементи (обекти) на тази страница, носят изпълнението на специфично значение (специфично действие) върху алгоритмите (функциите) на езика на javascript.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_693.jpeg
    Всъщност, страницата е в ръцете на Опитен разработчик - е прехвърлянето на смисъла на функционалния. Елементите на страницата могат да се реализират чрез javascript функции.

    Какво и кога се случва: прост вариант

    Когато експресивният javascript е ограничен от собствените си възможности, разработчикът може да направи функционалността на страницата, описваща данните или описанието на кода за инициализация. Разработчикът може само да приеме план за поведение на посетителя, но не е задължен да мисли и да прилага точен алгоритъм за поведението си. Идеята за налагане на диалог сега е единствено в компетенциите на "обсесивно рекламиране", а не на професионално изпълнена страница.
    http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_984.jpeg
    Резюме от проблема на организацията на диалога, фокусирайки се върху разпределението на функционалното съдържание на елементите на страницата, експресивните javascript прегледи, мисли и действия на клиента се превръща в обхвата на неговата компетентност. Въпросът тук е, че поведението на потребителя на страницата трябва да бъде еквивалентно на поведението му в реалната ситуация: в ежедневието, на работното място, на улицата и т.н. Този език не само осигурява паралелно изпълнение на функционалността, но и гарантира неговата съвместимост във времето. Синтаксисът на езика дава на разработчика възможността да напише безопасен работен код, независимо от времето, което го отнемапроизводителност.

    Променяща се функционалност: участие на сървъра

    Семантиката на страницата и нейните функционалности се променят от сървъра, т.е. действията на посетителя причиняват промени в елементите на страницата по такъв начин, че една функция се заменя с друга. В тази ситуация разработчикът съчетава възможностите на сървърния език с възможностите на JS. Това му дава възможност да предложи на посетителите разнообразно движение: страницата адекватно отговаря на човешкото поведение, както в диалог с подобно.
    [thumb] http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_595.jpeg
    има една семантика. След избиране на желаната посока, посетителят получава актуализирана версия на страницата, преминава към следващия етап, получава нови възможности. В този контекст, сайтът може да натрупа информация за това как се държат посетителите, да се адаптират към целесъобразното поведение, да прехвърлят "действителния алгоритъм" на някои посетители, за да осигурят работата на другите. Казано по-просто, експресивният javascript, действащ съвместно със сървърния език за програмиране, получава способността да се адаптира динамично към желаната функционалност.

    Javascript и езици на сървъра

    Страницата на браузъра е в браузъра, докато посетителят е напуснал сайта: обекти на javascript са постоянно активни. Обектът на езика на сървъра е "на живо", докато се генерира страницата, изпълнява се AJAX заявка или се изпълнява друга операция под контрола на сървърния език. Обектите на javascript са винаги в работно състояние, обектите на сървърния език не са. Последният разгръща своята система от обекти, придобивайки контрол и прави товасистематично, многократно повтарящи се, извършвайки допълнителна работа.
    Най-доброто решение е да се премести центърът на тежестта настрани браузър. Това намалява натоварването на сървъра и прави възможно проектирането на постоянни обекти, а не на множество форми на сървъра. За да помогне на разработчиците има много интересни публикации, най-доброто от които е второто издание на "Expressive javascript, книгата Eloquent javascript" на Marijn Haverbeke, превод от Вячеслав Голованов. Книгата е написана в достъпен стил, съдържа голям брой примери и задачи, чиято собствена версия на решението, можете да проверите прикачените връзки в Интернет. Примери и задачи от тази книга са систематизирани по теми, особености на приложение. Подробно изследване на различните опции за кодиране.

    Динамика на функционалността и сигурността на кода

    Проблемът с авторския код (алгоритъм) на javascript, срещу кода (алгоритъма) на сървърния език, разбира се, е на преден план анализ. Всичко, което попада в браузъра, е достъпно за гледане и неоторизирано копиране. Ако обектът в браузъра динамично се променя под контрола на сървъра, тогава не всичко е толкова лошо. Не е необходимо да се прави страница със статично съдържание на необходимата функционалност.
    [палец] http://hi-news.pp.ua/uploads/posts/2017-11/virazniy-javascript-opis-mozhlivostey_967.jpeg
    Функционалността може и трябва да се променя адекватно поведението на посетителите , Разпределяйки функционалността на етапите на диалога с посетителя, можете елементарно да затворите възможносттанеразрешен код за кражба. Въпросът как да се реши такъв проблем зависи от обхвата на сайта и от квалификацията на предприемача. Но този въпрос винаги има смисъл и е достъпен за разрешаване.

    Свързани публикации

    Многоизмерни, асоциативни JavaScript масиви. Работа с JavaScript масиви Какво е Java различен от Javascript? Сравнение на Java и JavaScript JavaScript /стек на JavaScript JavaScript: Примери за приложения JavaScript цикли: за, докато, do-while Как да конвертирате JavaScript низ в число