Новини високих технологій
» » Виразний JavaScript: опис можливостей

Виразний JavaScript: опис можливостей

23-11-2017, 22:52
927
Історія гіпертексту, специфіка HTML, CSS, відмінностей в браузерах і особливостей мобільних девайсів наклали відбиток на стиль інтернет-програмування і особливо на jаvascript (JS). Характерна риса сучасних високих технологій «не зрозумів, не зробив» до JS має саме пряме відношення. Однак не слід цього надавати саме таке значення. JS - чудовий мову програмування, що вимагає до себе поваги, а від програміста - уважності і акуратності.
Перш ніж стверджувати наявність бага в мові або проблеми в браузері, потрібно бути абсолютно впевненим, що алгоритм бездоганний, як відносно синтаксису, так і в плані семантики.

Загальне уявлення про jаvascript

Основна область «проживання» JS - браузер. Можна сказати, що його основна мета - обслуговувати дерево сторінки - DOM, але це буде не дуже повно і точно. Виразний jаvascript - завдання для правильного відображення сторінки та її належного функціонування.


Статичні сторінки вже давно і обгрунтовано забуті, а динаміка всіх елементів сайту стала нормою. Характерне прагнення сучасних уявлень - одна сторінка, яка динамічно змінюється в залежності від поведінки відвідувача. Ця обставина зазвичай не властиво CMS (систем управління сайтами), які представляють собою сукупності численних сторінок, комбінують шаблони PHP, Perl, API різних сервісів, jQuery та інші інструменти.
Виразний jаvascript займає свою унікальну нішу. Ця мова ідеально налаштований на забезпечення функціональності сторінки, елементарно забезпечує зв'язку між сторінками одного сайту, дає можливість переходити на інші сайти, завантажувати в браузер будь-які сторінки, працювати з різними серверами.


Немає такої події, яку не можна було б реалізувати за допомогою цієї мови. Практично всі популярні теги HTML дозволяють визначити необхідний функціонал, який виразний jаvascript оживляє, практично паралельним виконанням. З цього випливає кардинальне відмінність стилю «листи на JS» від інших мов програмування: тут немає, як такого, єдиного алгоритму. Виразний jаvascript - рішення задач в особливому функціонально скоєному стилі.

Функціональність мови та події сторінки

За загальною логікою програмування, будь алгоритм на будь-якій мові це: опис даних; опис алгоритму. Перше - вже традиційно не типово, тобто зовсім не обов'язково описувати дані перед їх застосуванням і навіть, описавши змінну, зовсім немає необхідності вказувати її тип. Друге використовується далеко не завжди: код ініціалізації даних і коду їх обробляють. Виразний jаvascript виводить розробника на абсолютно інші позиції. Сторінка сайту, потрапляючи в браузер, перетворюється в дерево об'єктів - DOM. Практично кожному об'єкту DOM (тобто сторінки) може бути призначено подія. Формально сторінка перетворюється в композицію: об'єкти; події; функції JS. Оскільки сторінка - це завжди семантично закінчений елемент веб-ресурсу, то події, які ініціюють елементи (об'єкти) цієї сторінки, переносять реалізацію конкретного сенсу (конкретної дії) на алгоритми (функції) мови jаvascript.
Фактично, сторінка в руках досвідченого розробника - це перенесення сенсу в функціонал. Елементи сторінки отримують можливість реалізовувати себе через функції jаvascript.

Що і коли виповнюється: простий варіант

Коли виразний jаvascript обмежується власними можливостями, розробник може скласти функціональність сторінки опис даних або опис коду ініціалізації. Розробник може тільки припустити план поведінки відвідувача, але не зобов'язаний продумувати і реалізовувати точний алгоритм його поведінки. Ідея нав'язування діалогу тепер виключно у сфері компетенції «нав'язливої реклами», а не професійно виконаної сторінки.
Абстрагуючись від проблеми організації діалогу, концентруючись на розподілі функціоналу за змістом елементів сторінки, виразний jаvascript відгуки, думки і дії клієнта переводить в сферу його компетенції. Сенс тут полягає в тому, що поведінку користувача на сторінці має бути еквівалентно його поведінки в реальній ситуації: у побуті, на роботі, на вулиці і т. п. Простий варіант демонструє власну міць jаvascript. Ця мова не тільки забезпечує паралельне виконання функціоналу, але і гарантує його сумісність по часу. Синтаксис мови надає розробникові можливість писати безпечний, працюючий код, незалежно від часу, коли знадобиться його виконання.

Зміна функціональності: участь сервера

Семантика сторінки та її функціонал змінюється сервером, тобто дії відвідувача викликають зміни елементів сторінки таким чином, що одна функція замінюється на інший. У такій ситуації розробник поєднує можливості серверного мови з можливостями JS. Це дає йому можливість пропонувати відвідувачу різноманітне рух: сторінка адекватно реагує на поведінку людини, як у діалозі з собі подібним.
На початковому етапі, сторінка має одну семантику. Після вибору потрібного напрямку відвідувач отримує оновлений варіант сторінки, переходить на наступний етап, отримує нові можливості. У такому контексті сайт може накопичувати інформацію про те, як ведуть себе відвідувачі, адаптуватися до доцільного поведінки, переносячи «фактичний алгоритм роботи» одних відвідувачів, на забезпечення роботи інших. Простіше кажучи, виразний jаvascript, діючи спільно з серверним мовою програмування, отримує можливість динамічно адаптуватися до потрібного функціоналу.

Об'єкти jаvascript і серверного мови

Сторінка в браузері перебуває до тих пір, поки відвідувач не пішов з сайту: об'єкти jаvascript постійно активні. Об'єкт серверного мови «живе» поки формується сторінка, відпрацьовується запит AJAX або виконується іншу дію під управлінням серверного мови. Об'єкти jаvascript завжди знаходяться в робочому стані, об'єкти серверного мови - немає. Останній розгортає свою систему об'єктів, отримуючи управління, і робить це систематично, багаторазово повторюється, виконуючи зайву роботу.
Краще рішення - перенести центр ваги на бік браузера. Це знижує навантаження на сервер і робить можливим проектування постійно існуючих об'єктів, а не багаторазове формування їх на сервері. В допомогу розробникам є достатня кількість цікавих видань, кращим з яких вважається друге видання «Виразний jаvascript, книга Eloquent jаvascript», автор Marijn Haverbeke, переклад В'ячеслава Голованова. Книга написана в доступному стилі, містить велику кількість прикладів і завдань, власний варіант вирішення яких, можна перевірити додаються посилань в інтернеті. Приклади та завдання з цієї книжки систематизовано за темами, особливостям застосування. Докладно розглядають різні варіанти кодування.

Динаміка функціональності і безпеку коду

Проблема авторського права коду (алгоритму) на jаvascript, проти коду (алгоритму) на серверному мовою, при побіжному аналізі, безумовно, існує. Все, що потрапило в браузер, доступно для перегляду та несанкціонованого копіювання. Якщо об'єкт у браузері динамічно змінюється під управлінням сервера, то не все так вже погано. Зовсім не обов'язково робити сторінку статичного змісту необхідної функціональності.
Функціональність може і повинна змінюватися адекватно поведінки відвідувача. Розподіляючи функціональність за етапами діалогу з відвідувачем, можна елементарно закрити можливість несанкціоновано вкрасти код. Питання, як вирішити таку задачу, залежить від області застосування сайту і кваліфікації розробника. Але це питання завжди має сенс ставити, і він доступний для вирішення.
Цікаво по темі
Використання елементів DOM через JavaScript getElementById
Використання елементів DOM через JavaScript getElementById
Створення динамічних сторінок передбачає безпосередній доступ до існуючих елементів, створення нових і зміна їх властивостей. Використання методу
Управління часом функцією JavaScript setInterval ()
Управління часом функцією JavaScript setInterval ()
Час - фактор, який слід не тільки враховувати, але і управляти їм в реальному масштабі. Веб-ресурс, що не контролює час, не може забезпечити ні
Стек JavaScript push/pop
Стек JavaScript push/pop
Стекова організація даних - одна з найдавніших в програмуванні. Останнім прийшов, першим пішов - просто ідеальна конструкція не тільки для
JavaScript, масиви: опис
JavaScript, масиви: опис
jаvascript – сучасна мова програмування, він унікальний у частині синтаксису і семантики. Має специфіку...
Javascript Array для збереження необмеженої кількості змінних
Javascript Array для збереження необмеженої кількості змінних
Логічно масив займає проміжне положення між змінними і об'єктами. Практично не слід надавати особливого значення словам. У програмі є змінні і код.
JavaScript: приклади застосування
JavaScript: приклади застосування
jаvascript - сучасна мова програмування, без якого важко створити динамічний сайт, який привертає увагу. JS ідеально справляється з обробкою