Простой ванильный JavaScript лучше, чем использование платформ как jQuery или MooTools? [закрытый]

14
задан Peter Mortensen 17 May 2011 в 12:44
поделиться

6 ответов

  1. Фреймворки решают кроссбраузерные ошибки, которые обычно требуют нескольких часов вашего времени, поэтому вы можете сосредоточиться на функциональности, а не беспокоиться о какой-то краевой ошибке браузера ... вместо того, чтобы тратить 4-5 часов на решение жук проводит это время с семьей.

  2. Такие фреймворки, как jQuery, довольно загружены такими вещами, как анимация, селекторы, манипуляции с HTML, поэтому обычно в библиотеку уже встроены какие-то функции, что снова экономит ваше время, а API позволяет действительно легко выполнять сложные задачи.

  3. Интерпретаторы и браузеры становятся все быстрее и быстрее, поэтому я не думаю, что это большая проблема с загрузкой всей библиотеки. Вдобавок благодаря Google и др. Мы получаем очень быстрые CDN, и в настоящее время многие сайты используют один и тот же точный URI для извлечения скрипта, что означает более высокую скорость кэширования и повторного использования скрипта на другом сайте.

  4. Вместо того, чтобы каждый веб-разработчик имел собственную библиотеку, гораздо эффективнее сосредоточить тысячи людей на улучшении нескольких библиотек, чтобы кроссбраузерные ошибки документировались и исправлялись.

  5. Конкуренция - это хорошо, в результате тестов сликспид-тестов появились гораздо более быстрые селекторные движки, такие как Sizzle. Разработчикам не нужно беспокоиться о банальных ошибках DOM, что означает, что ежедневно создаются более сложные библиотеки, а это означает, что разработчики начального уровня имеют доступ к очень мощным плагинам.

Что касается безопасности, например, jQuery определит, способен ли браузер анализировать JSON изначально, и если да, то полагайтесь на это. Обычно это есть в любом современном браузере, и это намного безопаснее, чем eval ... поэтому jQuery стремится сначала использовать более безопасные и безопасные методы. Если метод JSON.parse недоступен, он будет использовать eval только .

При работе с jQuery важно помнить, что вы все еще пишете код на Javascript. Обычно люди слишком увлекаются методами сахарного покрытия и упаковывают все в $ , я думаю, важно знать, что вы все еще можете использовать this.href вместо $ (this) .attr ('href') , например, если вам нужен абсолютно нормализованный uri.

39
ответ дан 1 December 2019 в 06:15
поделиться

Не преуменьшайте важность предотвращения повторного изобретения колеса. Вы не изобретаете новый компьютер каждый раз, когда хотите написать новую программу.

Но помимо этого библиотеки JavaScript обеспечивают лучшую кроссбраузерную поддержку . Это чрезвычайно полезно, как показывает беглый взгляд на QuirksMode .

Фреймворки JavaScript делают многие вещи проще . Посмотрите документацию jQuery, и вы увидите, насколько легко с ней можно делать много необычных вещей.

Фреймворки JavaScript были расширены многими людьми, поэтому существует множество высококачественных плагинов jQuery (например, это фреймворк, который я знаю лучше всего), которые вы можете использовать, не создавая их самостоятельно.

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

8
ответ дан 1 December 2019 в 06:15
поделиться

Это зависит от того, для чего вы используете JavaScript. Если вы хотите иметь возможность показывать и скрывать панели, анимировать вещи, прикреплять события к нескольким элементам, делать Ajax и т.д., то вам нужно учитывать кроссбраузерные проблемы.

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

Так что все зависит от того, чего вы хотите от JavaScript.

1
ответ дан 1 December 2019 в 06:15
поделиться

Я никогда не использовал MooTools, поэтому не могу комментировать, но jQuery делает многие вещи проще.

  • Выборка коллекций объектов по классу, имени, частичному Id и т.д.
  • Упрощение вызовов Ajax.
  • Подключение обработчиков событий для обработки onclick, mouseover, mouseout и т.д. и назначение их элементам на основе общих селекторов, чтобы можно было повторно использовать логику.
  • Тонны переходов и других визуальных элементов, чтобы украсить переднюю часть.

Есть еще много всего, но в целом это упрощает/ускоряет разработку. Одна вещь, на которую следует обратить внимание: если вы используете тонну селекторов в одной функции (цикл, который итерирует DOM 40+ раз), гораздо эффективнее использовать ванильный JavaScript.

Поэтому я бы посоветовал написать фронт-енд с помощью фреймворка, а затем оптимизировать недостаточно эффективные части, добавив ванильный JavaScript.

Кроме того, я не вижу, как jQuery или MooTools могут представлять угрозу безопасности, поскольку это фреймворки на стороне клиента, а не на стороне сервера. Не забывайте всегда проверять вводимые данные на стороне сервера в дополнение к любой проверке на стороне клиента и правильно параметризовать SQL-запросы, создаваемые на стороне сервера.

1
ответ дан 1 December 2019 в 06:15
поделиться

Фреймворки предоставляют кроссбраузерный API для JavaScript, поэтому в большинстве случаев они очень полезны, хотя и имеют небольшую потерю скорости. Но JS-движки быстро обновляются почти при каждом обновлении, так что это не проблема. Также существует очень много плагинов для фреймворков, поэтому они предоставляют не только API, но и новые кроссбраузерные функции. Но это зависит от того, что ты хочешь делать.

1
ответ дан 1 December 2019 в 06:15
поделиться

Я не придаю большого значения аргументу «Открытый исходный код чрезвычайно уязвим для проблем безопасности». Я вижу пользу в том, что многие хорошие парни читают код и обнаруживают такие проблемы. Если бы это было проблемой, нам бы пришлось отказаться от Linux, Apache, MySql и большинства библиотек Java.

Фреймворки обычно экономят очень много усилий, я вижу их именно как заранее изобретенное колесо. Никакой другой ценности им не нужно.

1
ответ дан 1 December 2019 в 06:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: