jQuery проти javascript? [зачинено]


76

Нещодавно я наткнувся на деякі форуми javascript (на жаль, посилання десь у Всесвіті загублено), де ви можете відчути справжню ненависть до jQuery за те, що він не ... хороший?

Здається, більшість аргументів мають сенс насправді.

Зараз мені дуже подобається jQuery, здебільшого за те, що я дозволяю сконцентруватися на речах, які я хочу робити, а не на невідповідностях браузера, і це насправді робить AJAXing з крутими (або зловживаними ?) Ефектами веселими.

Але якщо насправді щось є гнилим в основі jQuery, я не хочу покладатися на нього так, як я насправді ... покладаюся на нього.

Я не хочу починати черговий аргумент, який фреймворк найкращий ... але ... Який фреймворк найкращий (жарт) ? Як звичайний випадок, подумайте про малий та середній Інтернет та його адміністрування.

Я просто намагаюся зрозуміти, чи дійсно має значення щось у якомусь фреймворку чи чистому JavaScript з кількома шахтними функціями.

Редагувати:

Я насправді намагався провести нормальну об'єктивну дискусію щодо плюсів і мінусів:

  1. Використання фреймворку над чистим javascript та
  2. jQuery проти інших,

Оскільки з jQuery, здається, найпростіше працювати з найшвидшою кривою навчання. Однак деякі люди просто цього не розуміють і думають, що я починаю чергове полум’я (те, чим я не є). Я фактично голосую за те, щоб знову відкрити це питання.

Також мене дуже цікавить:

  • Чи сильно jQuery покладається на нюхання браузера? Це може бути потенційною проблемою в майбутньому? Чому?
  • Я знайшов безліч механізмів JS-селектора, чи є бібліотеки AJAX та FX?
  • Чи є якась причина (крім нюхання браузера та особистої "ненависті" проти Джона Резіга), чому jQuery помиляється?

jQuery насправді, як і в більшості випадків, означає інші рамки.


1
"Я не хочу починати чергову суперечку щодо того, який фреймворк найкращий", ". Який фреймворк найкращий?" Що? ..
Філіп Екберг,

1
@Jimmy - так, але здебільшого ти завжди бачиш одну думку - на дружніх сайтах jQuery jQuery ftw, на деяких js-форумах jQuery sucksти ніколи не бачиш порівняння поруч
Адам Кісс

3
Він суб’єктивний, аргументований і повинен бути, якщо не закритим, спільнотою wiki.
Філіп Екберг

1
@Filip щось заявляє і висловлює ... це мало на увазі як жарт ... неважливо>.<
Адам Кісс

2
@ Адаме Я прочитав. Я розумію, що ви не намагаєтеся розпочати полум'яну війну. Прочитайте, що я писав. Я не казав, що ти. Я говорю це зайве і непотрібне .
Jimmy Cuadra

Відповіді:


43

Вся справа в продуктивності та швидкості розробки. Звичайно, якщо ви хороший програміст і розробляєте щось, що дійсно відповідає вашим потребам, ви можете досягти кращої продуктивності, ніж якби використовували фреймворк Javascript. Але у вас є час, щоб зробити це все самостійно?

Моя особиста думка полягає в тому, що Javascript неймовірно корисний і зловживаний, але якщо вам він справді потрібен, то фреймворк - це шлях.

Тепер іде вибір рамки. Для того, що варті тести, ви можете знайти їх на веб-сайті http://ejohn.org/files/142/ . Це також залежить від того, які плагіни доступні та що ви збираєтеся з ними робити. Я почав використовувати jQuery, тому що він, здавалося, підтримувався і добре функціонував, хоча на той момент він був не найшвидшим. Я не шкодую, але з того часу нічого іншого не тестував.


ну точно мої думки (наразі), але твердження про те, як jQuery робить все неправильно в ядрі "corest" і оцінює браузери та інше ... мене збентежило
Адам Кісс

1
jQuery - це не фреймворк, це бібліотека утиліт.
Володимир Корнеа

Зараз, можливо. Близько 10 років тому все було трохи інакше :)
Xr.

32

Особисто я думаю, що спочатку слід навчитися важкому шляху. Це зробить вас кращим програмістом, і ви зможете вирішити цю єдину проблему, коли вона з’явиться. Після того, як ви можете зробити це з чистим JavaScript, використання jQuery для пришвидшення розробки - це лише додатковий бонус.

Якщо ви можете зробити це важчим способом, тоді ви можете зробити це простим способом, це не працює навпаки. Це стосується будь-якої парадигми програмування.


11

Jquery, як і будь-який інший хороший фреймворк JavaScript, надає вам функціонал, незалежний від платформи браузера, обгортаючи всі тонкощі, про які ви можете не піклуватися або не хотіти піклуватися.

Я думаю, що краще використовувати фреймворк замість того, щоб використовувати чистий JavaScript і робити всі речі з нуля, якщо тільки ви не дуже обмежені.

Я точно рекомендую JQuery!

Дякую


Я вже працюю з jQuery, мене більше цікавили аргументи, чому це краще (відклавши "простоту використання")
Адам Кісс

1
Через його елегантність та постійні нові функції, принаймні, я не бачив жодного фреймворку JavaScript, який би мав це швидко зростаюче співтовариство користувачів та підтримку. Дякую
Махеш Велага

3
@Greg: Я не зрозумів, що ти коментуєш. Я використовував Eleganceу неправильному контексті?
Махеш Велага

11

"Я насправді намагався провести нормальну об'єктивну дискусію щодо плюсів і мінусів 1., використовуючи фреймворк над чистим javascript і 2., jquery проти інших, оскільки з jQuery, здається, найпростіше працювати з найшвидшою кривою навчання."

Використання будь-якого фреймворку, оскільки ви не хочете насправді вивчати базову мову, є абсолютно неправильним не лише для JavaScript, але й для будь-якої іншої мови програмування.

"Чи є якась причина (крім нюху браузера та особистої" ненависті "проти Джона Резіга), чому jQuery помиляється ?"

Більша частина ненависті знову виникає через перебільшений фанбоїзм, який забруднює форуми "використовуючи jQuery" як відповідь на кожне окреме запитання JavaScript та надмірне використання, яке створює код, в якому прості висловлювання, такі як оголошення змінної, здійснюються за допомогою бібліотечних дзвінків.

Тим не менше, є також деякі законні технічні проблеми, такі як спільна провина у виготовленні нерозбірливого коду та накладні витрати. Звичайно, ці двоє погіршуються недостатньою кваліфікацією розробників, а не самою бібліотекою.


8
  • Чи сильно jQuery покладається на нюхання браузера? Чи може це бути потенційною проблемою в майбутньому? Чому?

Ні - існує метод $ .browser, але він застарів і не використовується в ядрі.

  • Я знайшов безліч механізмів JS-селектора, чи є бібліотеки AJAX та FX?

Навантаження. jQuery часто вибирають, оскільки він добре виконує AJAX та анімацію та легко розширюється. jQuery не використовує власний механізм селектора, він використовує Sizzle , неймовірно швидкий механізм селектора.

  • Чи є якась причина (крім нюхання браузера та особистої "ненависті" проти Джона Резіга), чому jQuery помиляється?

Ні - він швидкий, порівняно невеликий і його легко розширити.

Для мене особисто приємно знати, що оскільки браузери включають більше речей (наприклад, API списку класів), які jQuery оновить, щоб включити їх, це означає, що мій код працює якомога швидше весь час.

Прочитайте джерело, якщо вам цікаво, http://code.jquery.com/jquery-1.4.3.js - ви побачите, що функції додаються спочатку в найкращому випадку і поступово повертаються до застарілих браузерів - для Наприклад, розділ методу parseJSON з 1.4.3:

return window.JSON && window.JSON.parse ?
    window.JSON.parse( data ) :
    (new Function("return " + data))();

Як бачите, якщо window.JSON існує, браузер використовує власний синтаксичний аналізатор JSON, якщо ні, то він уникає використання eval (оскільки в іншому випадку мініфери не зменшують цей біт) і встановлює функцію, яка повертає дані. Ця ідея спочатку припускати сучасні методи, а потім переходити на старіші методи, використовується у всьому сенсі, що нові браузери можуть використовувати всі функції вибуху, не жертвуючи застарілою сумісністю.


Анімація з jquery може бути не найкращим вибором через проблеми з продуктивністю. css-tricks.com/myth-busting-css-animations-vs-javascript Подивіться на GSAP також як на хороший пакет.
gdbj

5

Jquery проти JavaScript, я повністю проти ОП у цьому питанні. Порівняння відбувається з двома подібними речами, не в такому випадку.

Jquery - це Javascript. Бібліотека javascript для зменшення розмитого кодування, колекція загальновживаних функцій javascript, яка, як виявилося, допомагає в ефективному та швидкому кодуванні.

Javascript - це джерело, фактичні сценарії, на які реагує браузер.


2
На мою думку, хто хоче зрозуміти питання, розуміє його. Тут було зазначено, чи варто jQuery впроваджувати, чи програмісту слід використовувати чистий JavaScript.
Bunkai. Саторі

@ Bunkai.Satori, який в основному просить відповіді на jQuery проти Javascript.
Starx

@ Tiberiu-IonuțStan, або багато рядків кодів для простої дії.
Starx

1
На мій погляд, основною проблемою JQuery є те, що, хоча він і полегшив розробку, існує тривожна кількість людей, які вважають, що JQuery - це окрема мова, альтернатива Javascript. Звідси привертає увагу заголовок питання ... і, отже, багато погано написаного коду, який не зовсім розуміє, як працює DOM / JQuery / Javascript.
Katana314

1
@ Katana314, я згоден. Популярна бібліотека, така як jQuery, є помилковим уявленням про мову. На жаль, навіть у заявці на роботу ви бачите, експерта з JavaScript та jQuery. Інший приклад - Ruby on Rails, який є дуже близьким до винятку, але все ще не іншою мовою. Щонайменше це поширені помилки новачків. Як тільки їх код перейде на корпоративний рівень, вони навчаться кодувати чистий javascript.
Starx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.