Я веб-розробник майже 10 років, і я звик намагатися не використовувати JavaScript, коли це можливо. Я не говорю тут про створення веб-додатків, а про веб-сайти, керовані базами даних.
Це гарний / шанований підхід?
Я веб-розробник майже 10 років, і я звик намагатися не використовувати JavaScript, коли це можливо. Я не говорю тут про створення веб-додатків, а про веб-сайти, керовані базами даних.
Це гарний / шанований підхід?
Відповіді:
Це інстинкт більшість програмістів , щоб зменшити всі види коду. Чим менше код, тим менша кількість складностей і менша кількість можливих помилок у згаданому коді. Це правило стосується Javascript так само, як і для інших мов. Ви просто дотримуєтесь традиції.
Використовуйте Javascript за потребою / бажаного на сторінках HTML ... але немає ніяких причин використовувати його, коли він насправді не потрібен.
10 років тому це могло бути гарною ідеєю. В даний час більшість частин Інтернету (принаймні деякі дуже популярні частини -) стали майже непридатними або забезпечують лише дуже обмежений функціонал при відключенні Javascript у браузері. Тож IMHO сьогодні ви можете очікувати, що у ваших користувачів увімкнено Javascript.
І є безліч фреймворків, таких як JQuery, щоб подолати несумісність браузера. IMHO сьогодні немає жодної реальної причини, чому ви повинні обмежувати себе тим, що не використовуєте Javascript для свого веб-сайту - єдиною причиною може бути те, що ви не користуєтесь ним.
EDIT: інше питання: Якщо ви маєте забезпечити мінімальну функціональність свого веб-сайту, коли у ваших відвідувачів не ввімкнено JS - це здебільшого гарна ідея з причин, які вказали деякі з коментаторів.
EDIT2: напевно, для кожного веб-сайту потрібно знайти баланс між зручністю для користувача, зручністю для пошукових систем та зусиллями з розробки. IMHO сьогодні Javascript може допомогти покращити цей баланс - якщо його використовувати розумно. Сказав це, я думаю, що сьогодні немає потреби загалом мінімізувати використання Javascript, щоб зберегти цей баланс. Використовуйте його обережно і не демонізуйте.
Наявність веб-сайту, який можна використовувати без JavaScript, означає, що він доступний для широкої аудиторії. Хоча це правда, що більшість браузерів підтримує JavaScript, а більшість користувачів залишають його за замовчуванням, на це ви точно не можете розраховувати. Не все, що звертається до вашого веб-сайту, зрештою є браузером; якщо ви хочете, щоб ваш сайт був правильно індексований пошуковими системами, такими як Google, GoogleBot повинен мати можливість переміщатися по вашому сайту без JavaScript.
Існують також спеціалізовані фрагменти програмного забезпечення для веб-перегляду, де JavaScript недоступний або працює не так, як очікувалося. Програми для читання на екрані чи Брайля, наприклад, для людей із вадами зору. Існують також середовища, де пам'ять обмежена і наявність величезної кількості javascript може зробити досвід перегляду неприємним або навіть непрактичним, наприклад браузери смартфонів.
Ви повинні вивчити поняття "прогресивне вдосконалення", де ви створюєте сайт для роботи без javascript, а потім додайте шар javascript зверху, щоб покращити роботу користувачів. Таким чином у вас з’явиться сайт, принаймні придатний для людей без JavaScript.
Вам не потрібно прагнути надавати всі можливі функції, які ви плануєте впроваджувати за допомогою JavaScript, для браузерів, які не перебувають у JavaScript, але все одно важливо хоча б залишити основні випадки використання без JavaScript. Можливість перегляду веб-сайту, очевидно, знаходиться в списку, але якщо ви створюєте веб-сайт електронної комерції, зробити процес оформлення замовлення JavaScript залежить від дурного, оскільки це може коштувати вам продажів.
Інші відповіді, здається, зосереджуються на тому, "чи я ніколи не повинен використовувати JavaScript", тому я думаю, що вони пропускають суть. Ви не повинні використовувати JavaScript, якщо він вам не потрібен. Деякі люди використовують JavaScript для всього :
href
коли розумно)Переваги:
href
посилань допомагає пошуковим системам, користувачам, які хочуть відкривати посилання на інших вкладках, і користувачам, які ненавидять JavaScriptЗвичайно, AJAX - це дуже круто, а також динамічні сторінки, тому не кидайте ці речі просто тому, що деякі люди їм не потрібні.
Моя думка, навчитися робити речі без JavaScript - це добре, мінімізувати JavaScript - це добре, а створити резервну копію, коли JavaScript не працює, - це добре, але немає ніяких причин уникати функцій, оскільки вони вимагають JavaScript.
Хороша ідея уникати зайвих функціональних можливостей, періоду. Такі рамки, як jQuery, неймовірно легко додавати надмірності, які можна додати, але іноді - ні. Наприклад:
Вам справді потрібно анімувати це?
... або ...
Чи справді потрібен обхід усієї DOM для такого тривіального селектора? Чи можете ви обмежити це за допомогою контексту, і чи потрібно нам це в першу чергу?
Я б не уникав використання JS, але я подбаю про те, щоб не бути недоброзичливим, шукаючи повільніші машини. Те ж саме стосується і деяких фантазійних нових речей, які ми отримуємо в CSS3 - як тіні для крапель… Якщо вони використовуються надмірно, вони можуть змусити когось із машин з меншим живленням мати дуже поганий досвід.
Винятком з цього може бути написання управління на передній частині для різних типів приладів, де вони повинні абсолютно працювати з інвалідом JS (можливо, сувора політика безпеки в мережі управління центром обробки даних не диктує відсутність JS). Отже, вищезгадане слід сприймати в контексті будь-яких вимог.
Я вважаю, що, будучи відносно новим і молодим веб-розробником (близько 4 років), мені довелося багато досліджувати це, оскільки javascript є скрізь.
Що я намагаюся зробити у своїх проектах - це переконатися, що сайт функціонує без javascript, а потім додайте JavaScript там, де це має сенс (перевірка на стороні клієнта, поліпшення інтерфейсу тощо). Це свого роду прогресивне вдосконалення, і воно піклується про SEO, відключений JavaScript та старіші несумісності браузера.
Це ж запитання було задано на SO, але я не можу, щоб кохання мене пригадало, де.
Використання JavaScript може бути обмежено у кількох випадках:
JS має величезну кількість функцій, які не можна замінити кодом на стороні сервера. Крім зазначених вище, я не думаю, що було б жодного розумного аргументу для обмеження використання JS.
" Веб-сайти, керовані базами даних " - це ключ до відповіді Існує два способи створення веб-сайтів, і кількість дозволеного Javascript залежить, яким саме ви користуєтесь. Ви можете побудувати:
Контент-орієнтовані веб-сайти . У першому випадку магічні слова - це «прогресивне посилення»; обмежте JavaScript на надлишкові функції, які можуть надаватися класичним доступом до вмісту через звичайний HTTP.
Веб-додатки . Для додатків ви використовуєте Інтернет як програмну платформу. Програми покладаються на деякі припущення щодо наявного програмного забезпечення - сучасних браузерів, останніх версій популярних бібліотек javascript, настільних доступу з мишею та / або планшетами з мультитач.
Мінімальні вимоги доступу є нормальними, якщо ви дійсно створюєте додаток - ви орієнтуєтесь на якусь конкретну платформу, щоб отримати розширені функції, які не можна було б побудувати інакше. Це як розробка для Python або Java або .Net. Не дозволяйте такими мотивами, як HTML5, і обіцянка "бігти кудись" вас обдурить; ви можете мати портативний код між пристроями лише до тих пір, поки на них підтримується вся платформа. Будь-яка зміна стека розробки, і програмне забезпечення зламається.
Таким чином, ціна, яку потрібно заплатити, полягає в тому, що ви слідуєте за рухомою ціллю, оскільки випускаються нові версії платформи; вам доведеться грати догоні, щоб ваш додаток працював у міру розвитку платформи. Єдина вигода, яку ви отримуєте, - це напів універсальний механізм доставки вашої програми, який не залежить від пакетів та магазинів додатків; але ви втрачаєте головну особливість, яка відрізняє Інтернет від попередніх мережевих комп'ютерних систем.
Веб-сайти, орієнтовані на вміст, є різними звірами; вони в традиції класичної всесвітньої павутини. Вміст вірно інтерпретується клієнтом, що може зробити будь-яку бажану трансформацію перед презентацією. Очікується, що доступ до сайту матиме екосистема різних платформ, яка може підтримувати чинні стандарти:
Ви втратите їх усі, якщо вам буде потрібна поточна порода javascript, яка завжди змінюється. У цьому контексті зламаний JavaScript, який перешкоджає доступу до вмісту, є гріхом.
Усі говорять про те, що "використання JavaScript слід мінімізувати" виступає за цей стиль. Зверніть увагу на те, що вам належить включити деякий JS, але всі функції повинні бути зайвими з базовим доступом до вмісту, який може бути досягнутий на сервері:
Перевага такого підходу полягає в тому, що потрібно менше тестування та оновлення та більший термін зберігання. Перші статичні веб-сторінки 20 років тому все ще переглядаються у будь-якому веб-клієнті, але перші веб-програми назавжди зламані. Якщо на вашому веб-сайті взагалі є якесь значення архівації, ви з часом виграєте від використання Інтернету як системи доставки вмісту, а не платформи додатків.
Я працюю у своєму державному уряді, і як результат більшість моїх розробок стосуються інтерактивних веб-сайтів, керованих даними. Запити щодо історичних даних, форми форм, подібні. Ми тримаємо наш Javascript до абсолютного мінімуму з наступних причин:
1) Перевірка введення форм завжди має відбуватися на стороні сервера, а не на стороні клієнта. Якщо ви намагаєтесь перевірити свої дані на стороні клієнта, все, що потрібно зробити хакеру, - це створити локальну копію вашої веб-сторінки та переписати Javascript, щоб дозволити вам те, що він хоче надіслати вам (інженеція SQL тощо). Ваша перевірка повинна відбуватися десь під вашим виключним контролем, тобто на сервері.
2) Багато користувачів або вимикають Javascript, або використовують браузер, який може не реалізувати його належним чином. Будучи урядом, ми маємо підтримувати всіх, навіть якщо вони користуються дійсно СТАРО старим обладнанням. HTML працює скрізь; Javascript, не так багато. Не використовуючи Javascript на своїх веб-сторінках, ви даєте їм дійсно невеликий слід на клієнтській машині, використовуючи мало ресурсів. Це максимально збільшує кількість людей, які можуть отримати доступ до вашого вмісту. З тієї ж причини, ви не повинні бути занадто горіховими зі своїм CSS. Нехай це буде просто, дотримуйтесь чистоти, а маленькі бабусі бачать ваш сайт, навіть якщо їхній комп’ютер був придбаний у 1999 році. До речі, ми отримуємо дзвінки з технічної підтримки від таких людей.
3) Javascript, будучи інструментом, який надають перевагу "веб-розробники", а не серверні програмісти, як правило, дуже некрасивий. І дизайнери (якими зазвичай є веб-розробники, якщо ви хочете бути чесними з цього приводу), як правило, не бачать проблеми із завантаженням «скриптів» із випадкових місць в Інтернеті. Кажуть, такі речі, як "навіщо винаходити колесо?" і "Тут не винаходили". Тож замість того, щоб написати власний код, вони часто просто виходять і захоплюють щось із іншого сайту, думаючи, що якщо він є в Інтернеті, це чесна гра. У цьому є дві проблеми: А) вони можуть ненавмисно опублікувати якийсь шкідливий Javascript, який потребує певного часу, і B) вони можуть зіткнутися з чиїмись авторськими правами, і вас подадуть до суду. Обидві ситуації слід уникати.
ВЗАГАЛЬНО, Javascript - це погана ідея. Код клієнта будь-якого виду - погана ідея. Сторона клієнта повинна містити лише мову розмітки та CSS; нехай сторона сервера обробляє важкий підйом.
Це залежить.
Хоча, можливо, очікується, що агенти користувачів настільних комп’ютерів підтримують та запускають ваш JavaScript в значній мірі, не всі користувацькі агенти є графічними браузерами настільних пристроїв, і вам потрібно вирішити, чи хочете ви їх обслуговувати.
Приклади включають:
Моє правило полягає в тому, що якщо це веб-додаток для постійних користувачів (внутрішня, спільнота, подібне), тоді покладатися на JavaScript - це нормально, але якщо ви хочете бути загальнодоступними та зручними, то, принаймні, важливі функціональність повинна працювати бездоганно без javascript, і ви повинні витончено виходити з ладу, коли вам це потрібно, а не проявляти "невизначену" поведінку.
Старомодний підхід повністю застарів. Наприклад, я зробив видалення ajax для модератора на одному з сайтів, і він просто радий через очевидне збільшення швидкості.
Звичайно, розробник може зробити дві версії як для JS, так і для користувачів, які не є JS, але в більшості випадків це надзвичайно дорого і не коштує 1-2% аудиторії веб-сайту (якщо ви, звичайно, не Google).
Тож моя відповідь буде НІ - JavaScript - це відповідь на багато питань щодо користувацького досвіду, чому я не повинен її використовувати?
З мого досвіду був час, коли компанії відключали JavaScript за політикою. Але цей час далеко не минув. В даний час я будую кілька великих інтранетних додатків та веб-застосувань для великих світових компаній. Для всіх програм використання JavaScript та JQuery було частиною речей, на які очікує клієнт.
Створення додатків для клієнтів - це не лише швидкість та безпека. Клієнт хоче зосередити увагу на зручності використання та використанні технології AJAX. Без використання JavaScript це не вийшло б добре. PostBacks весь час виконує деякі дуже маленькі завдання, такі як розрахунок чи щось подібне, для більшості компаній не є можливим.
Коли ми думаємо про поточну ситуацію у великих компаніях, є ще один показник того, чому JavaScript на даний момент є обов'язковим. Подивіться на системи CMS, які зараз працюють у бізнесі. Більшість з них використовують Microsoft SharePoint або Adobe CQ, деякі з них Drupal або будь-який інший тощо. Усі ці системи покладаються на JavaScript. Без javascript більшість додатків не працювала б, як очікує користувач.
За минулих часів JavaScript використовувались і зловживавали, а сценарії були (сприймаються як такі), що повні вразливості та джерело зловмисного програмного забезпечення.
Багато корпоративних мереж відповіли відключенням JS - політики, яка (правильно чи неправильно) існує і сьогодні в багатьох організаціях.
Простіше кажучи, я вважаю, що жоден сайт не повинен покладатися на JS для роботи
Як пояснюється більшість відповідей тут, використання javascript
шкоди не є шкодою. Якщо ви хочете зберегти кодування та безладно виглядати вихідний код, спробуйте, coffee-script
що заощадить багато зусиль набравши зусилля javascript
.