Чи є jquery бібліотекою javascript або рамкою? [зачинено]


121

Тут jquery згадується під рамковою категорією: http://en.wikipedia.org/wiki/Comppare_of_JavaScript_frameworks

Чи є jquery бібліотекою javascript або рамкою?


40
Бібліотека однієї людини - це рамки іншої людини.
nnnnnn

1
Це тут поза темою, тому що кожна відповідь однаково справедлива: "Який улюблений ______?" . Крім того, що має значення, якщо ми все це бібліотека чи рамки?
EJoshuaS

Відповіді:


169

Бібліотека. Відповідно до домашньої сторінки , з якою я згоден.

Рамка - це те, що зазвичай вимагає певного способу реалізації рішення, тоді як jQuery - це лише інструмент для полегшення реалізації того, що ви хочете зробити.


55
+1. Бібліотека - це те, що ви телефонуєте зі своєї програми. Рамка - це те, що викликає вашу програму.
Тіло

1
Для порівняння бібліотеки з рамками див. "Інверсія управління" stackoverflow.com/a/3057818/2144912
cheshireoctopus

30

14
Хоча я згоден, ім'я / слоган, що дається самостійно, нічого не підтверджує. Є тисячі так званих "каркасів", там насправді є бібліотеки.
kapex

@Kapep, але зворотний випадок зустрічається рідше: не багато фреймворків називають себе "бібліотеками". Я думаю, що термін "фреймворк" звучить сексуально для деяких ...
Франклін Ю

19

Напевно, це бібліотека javascript. Але щодо того, бути рамкою чи ні, я просто думаю, що це не рамка. Подивіться на wikipedia визначення програмного забезпечення :

Це колекція бібліотек програмного забезпечення, що забезпечує визначений інтерфейс програмування додатків.

І jQuery - це лише одна бібліотека. Після цього він говорить:

Рамки містять ключові відмінні риси, що відокремлюють їх від звичайних бібліотек:

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

Отже, я думаю, що це не рамки.


9

За інформацією веб-сайту angularjs

  • бібліотека - це сукупність функцій, які корисні при написанні веб-додатків. Ваш код відповідає, і він заходить у бібліотеку, коли
    вважає за потрібне. Наприклад, jQuery.
  • фреймворки - конкретна реалізація веб-програми, де ваш код заповнюється деталями. Рамка відповідає і вона запускає ваш код, коли йому потрібно щось конкретне додаток. Напр., Дурандал, ембер тощо.

5

Рамки та розслідування не обов'язково є взаємовиключними поняттями. Рамка, як правило, є бібліотекою або колекцією бібліотек.

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

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

Мабуть, найкращим поясненням того, чому jQuery є скоріше рамкою, ніж бібліотекою, є той факт, що як розробник, ви можете не використовувати жодних його рамкових функціональних можливостей. Наприклад, ви можете змішати простий оператор jQuery зі стандартним оператором JavaScript у тому ж рядку. AngularJS і Bootstrap зазвичай не дозволяють цього робити. Тому точна відповідь, чи jQuery є фреймворком, чи ні, "залежить від того, ви вирішили використовувати його як рамку чи ні"


2

Я погоджуюся з усіма відповідями тут, що сам jQuery - це бібліотека, а не рамки. Як зазначено у відповіді Саїда, однією з ключових відмінних особливостей є інверсія контролю. Однак ви можете використовувати функцію jQuery, щоб створити власну структуру.

Приклади: є проекти, побудовані поверх jQuery, які визначаються як рамки: jQuery Mobile: Веб-рамка , оптимізована дотиком , JavaScriptMVC та sammy.js .

Є також інші бібліотеки, побудовані поверх jQuery, наприклад, інтерфейс jQuery

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


1

Якщо ми говоримо про Інверсію управління, про яку майже всі у вищенаведеній темі говорять, тоді jQuery є РАМКОВОЮ.

У нього є МОК, наприклад, коли ми пишемо функцію $ (document). Вже {} ... саме цей контейнер викликає цей метод, і ми просто ставимо наш код всередині дужок. Ми не є Закликаючим цього методу, а отже, "Інверсія управління"

Таким чином jQuery - це РОМКА.


1
Так, більшість значних бібліотек забезпечують принаймні якийсь розпливчастий метод зворотного виклику з певною метою. Ви можете написати багато jQuery-коду, не покладаючись на це ready().
Натан Туггі

@NathanTuggy Тож чому навіть детальна дискусія про Framework vs Lib говорить про МОК. Якщо він є, він є. Навіщо говорити про "покладатися" чи "не покладатися".
pinkman

Оскільки ІОК в стилі фреймворку характеризується необхідністю його використання. Не можливість використовувати його, як бажано, конкретними способами, а-ля-карт. В рамках, у вас немає вибору: управління є перевернутим.
Натан Туггі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.