Фреймворки решают кроссбраузерные ошибки, которые обычно требуют нескольких часов вашего времени, поэтому вы можете сосредоточиться на функциональности, а не беспокоиться о какой-то краевой ошибке браузера ... вместо того, чтобы тратить 4-5 часов на решение жук проводит это время с семьей.
Такие фреймворки, как jQuery, довольно загружены такими вещами, как анимация, селекторы, манипуляции с HTML, поэтому обычно в библиотеку уже встроены какие-то функции, что снова экономит ваше время, а API позволяет действительно легко выполнять сложные задачи.
Интерпретаторы и браузеры становятся все быстрее и быстрее, поэтому я не думаю, что это большая проблема с загрузкой всей библиотеки. Вдобавок благодаря Google и др. Мы получаем очень быстрые CDN, и в настоящее время многие сайты используют один и тот же точный URI для извлечения скрипта, что означает более высокую скорость кэширования и повторного использования скрипта на другом сайте.
Вместо того, чтобы каждый веб-разработчик имел собственную библиотеку, гораздо эффективнее сосредоточить тысячи людей на улучшении нескольких библиотек, чтобы кроссбраузерные ошибки документировались и исправлялись.
Конкуренция - это хорошо, в результате тестов сликспид-тестов появились гораздо более быстрые селекторные движки, такие как Sizzle. Разработчикам не нужно беспокоиться о банальных ошибках DOM, что означает, что ежедневно создаются более сложные библиотеки, а это означает, что разработчики начального уровня имеют доступ к очень мощным плагинам.
Что касается безопасности, например, jQuery определит, способен ли браузер анализировать JSON изначально, и если да, то полагайтесь на это. Обычно это есть в любом современном браузере, и это намного безопаснее, чем eval
... поэтому jQuery стремится сначала использовать более безопасные и безопасные методы. Если метод JSON.parse недоступен, он будет использовать eval только .
При работе с jQuery важно помнить, что вы все еще пишете код на Javascript. Обычно люди слишком увлекаются методами сахарного покрытия и упаковывают все в $
, я думаю, важно знать, что вы все еще можете использовать this.href
вместо $ (this) .attr ('href')
, например, если вам нужен абсолютно нормализованный uri.
Не преуменьшайте важность предотвращения повторного изобретения колеса. Вы не изобретаете новый компьютер каждый раз, когда хотите написать новую программу.
Но помимо этого библиотеки JavaScript обеспечивают лучшую кроссбраузерную поддержку . Это чрезвычайно полезно, как показывает беглый взгляд на QuirksMode .
Фреймворки JavaScript делают многие вещи проще . Посмотрите документацию jQuery, и вы увидите, насколько легко с ней можно делать много необычных вещей.
Фреймворки JavaScript были расширены многими людьми, поэтому существует множество высококачественных плагинов jQuery (например, это фреймворк, который я знаю лучше всего), которые вы можете использовать, не создавая их самостоятельно.
Маловероятно, что в фреймворках JavaScript появятся дыры в безопасности, поскольку они не предоставляют больше функциональных возможностей, чем то, что вы можете сделать с помощью обычного JavaScript.
Это зависит от того, для чего вы используете JavaScript. Если вы хотите иметь возможность показывать и скрывать панели, анимировать вещи, прикреплять события к нескольким элементам, делать Ajax и т.д., то вам нужно учитывать кроссбраузерные проблемы.
jQuery устраняет необходимость думать о кроссбраузерности и позволяет реализовать некоторые действительно интересные функции, такие как вышеперечисленные, а также модальные диалоги и т.д.
Так что все зависит от того, чего вы хотите от JavaScript.
Я никогда не использовал MooTools, поэтому не могу комментировать, но jQuery делает многие вещи проще.
Есть еще много всего, но в целом это упрощает/ускоряет разработку. Одна вещь, на которую следует обратить внимание: если вы используете тонну селекторов в одной функции (цикл, который итерирует DOM 40+ раз), гораздо эффективнее использовать ванильный JavaScript.
Поэтому я бы посоветовал написать фронт-енд с помощью фреймворка, а затем оптимизировать недостаточно эффективные части, добавив ванильный JavaScript.
Кроме того, я не вижу, как jQuery или MooTools могут представлять угрозу безопасности, поскольку это фреймворки на стороне клиента, а не на стороне сервера. Не забывайте всегда проверять вводимые данные на стороне сервера в дополнение к любой проверке на стороне клиента и правильно параметризовать SQL-запросы, создаваемые на стороне сервера.
Фреймворки предоставляют кроссбраузерный API для JavaScript, поэтому в большинстве случаев они очень полезны, хотя и имеют небольшую потерю скорости. Но JS-движки быстро обновляются почти при каждом обновлении, так что это не проблема. Также существует очень много плагинов для фреймворков, поэтому они предоставляют не только API, но и новые кроссбраузерные функции. Но это зависит от того, что ты хочешь делать.
Я не придаю большого значения аргументу «Открытый исходный код чрезвычайно уязвим для проблем безопасности». Я вижу пользу в том, что многие хорошие парни читают код и обнаруживают такие проблемы. Если бы это было проблемой, нам бы пришлось отказаться от Linux, Apache, MySql и большинства библиотек Java.
Фреймворки обычно экономят очень много усилий, я вижу их именно как заранее изобретенное колесо. Никакой другой ценности им не нужно.