В чем недостаток использования слишком большого количества JavaScript? - PullRequest
6 голосов
/ 06 октября 2009

Хотелось бы узнать, какие недостатки имеют слишком много JavaScript-кода на веб-странице?

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

Я знаю многих разработчиков, которые осваивают более двух JavaScript-фреймворков. Мой вопрос: при разработке проекта, как выбрать JavaScript-фреймворк для этого проекта? Почему вы будете использовать MooTools или jQuery для этого проекта? (Я знаю, что это вопрос выбора), но есть ли другая причина? Как mootools хорошо для этого ... или jQuery хорошо для этого ..

Я хочу услышать ваше мнение.

Ответы [ 10 ]

9 голосов
/ 06 октября 2009

Какие недостатки есть у многих скриптов JavaScripts на сайте?

  • HTTP накладные расходы
  • Низкая ремонтопригодность

Почему вы будете использовать MooTools или jQuery для этого проекта?

Это не просто вопрос личного вкуса. Проверьте этот вопрос для более подробной информации.

Существуют конкретные рамки для конкретных вещей - например, Ext JS , которые пытаются охватить все, что нужно сайту. Это не то, что делает jQuery.

6 голосов
/ 06 октября 2009

Это будет зависеть от браузера (и серверной части) и от того, как он выполняет / масштабируется для многих сценариев. При разработке решения в первую очередь подумайте о требованиях аудитории. Будут ли они работать с четырехъядерными монстрами на сверхбыстрых оптоволоконных каналах или небольших телефонах с GPRS-каналами Затем решите, какие технологии будут удовлетворять эти потребности.

Не начинай сначала с технологии.

2 голосов
/ 15 ноября 2013

Сетевые издержки. Я говорю не о самих сценариях, а о том, что они делают:

Многие плагины создают фреймы для извлечения контента со сторонних веб-сайтов: Facebook, таких как кнопки, комментарии, лента Twitter, Google и различные виды рекламы и т. Д. Кроме того, эти плагины могут загружать и запускать собственные сценарии.

Даже если у вас 8 ядер, контент веб-сайта перемещается в течение как минимум 30 секунд, так как плагины загружают их содержимое (при каждом посещении страницы!). Вот почему я установил плагины для браузера, чтобы навсегда заблокировать JavaScript. Но даже если я включаю их, обычно они извлекают сценарии как минимум из 20-30 доменов, и мне нужно включить все сценарии на странице 4-5 раз, чтобы сделать сайт полностью функциональным. Пожалуйста, избегайте создания ситуаций, подобных этой.

2 голосов
/ 06 октября 2009

Я бы сказал, что есть несколько возможных недостатков использования нескольких библиотек:

  1. Время начальной загрузки: вам нужно быть немного осторожнее о ваших размерах файлов. Например, если этот календарь вы используют требует отдельного библиотека, чтобы функционировать, вы должны вопрос, почему вы не просто используете версия jQuery.
  2. Производительность клиента: вы переложить много обработки на компьютер клиента и старше машины / браузеры будут бороться с особенно интенсивные сценарии. Это вопрос знания вашего хотя целевая аудитория - если вы нацелен на технарей с монстр ПК тогда у вас больше шансов уйти с тяжелыми сценариями.
  3. Конфликты: как вы говорите, могут быть конфликты между функциями в разные библиотеки. Есть способы вокруг этого, но зачем отдавать себя проблема на первом месте?

В конце концов, все эти библиотеки - просто другой способ написания JavaScript. Выберите, какая библиотека вам подойдет; тот, который позволяет выполнить работу быстрее и с наименьшими ошибками.

2 голосов
/ 06 октября 2009

От вашего вопроса на ум приходит пара вопросов:

  • Наличие большого количества маленьких файлов скриптов может быть проблемой производительности. Если вы собираетесь использовать множество различных сценариев, объедините их в один файл сценария (и минимизируйте его и предоставьте сжатие gzip). В неофициальном вики Prototype & script.aculo.us есть подсказка , связанная с этим (раскрытие: я в основном писал этот совет, но с большим количеством отзывов от более умных людей). Также посмотрите, можете ли вы использовать CDN (большинство платформ теперь доступно через , например, Google CDN ).
  • Наличие множества различных фреймворков (jQuery, Prototype, MooTools, YUI и т. Д.) На одном и том же сайте может стать проблемой навыков - любой, кто работает на сайте, должен иметь навыки работы с различными различными фреймворками.
  • Некоторые фреймворки несовместимы друг с другом (например, я сомневаюсь, что Prototype и MooTools могут в настоящее время сосуществовать на странице; jQuery и Prototype могут работать в режиме jQuery «без конфликта»).

С точки зрения выбора единого фреймворка посмотрите, что вы пытаетесь сделать - некоторые фреймворки лучше подойдут для одних сайтов, чем для других. Также обратите внимание на наборы навыков, которые уже есть у ваших разработчиков, поскольку чем меньше новых знаний они должны освоить, тем больше времени они могут потратить на создание вашего сайта. Посмотрите на сообщество в рамках. Подумайте о наличии плагинов (хотя существует множество некачественных плагинов; не судите только по количеству). Посмотрите, подходит ли API фреймворка вашему подходу к вещам.

0 голосов
/ 06 октября 2009

Использование большого количества файлов JavaScript не должно быть проблемой, так как вы всегда можете объединить их все вместе, чтобы минимизировать HTTP-запросы. Конечно, чтобы выполнить весь этот JavaScript, нужно время браузера. Также есть вероятность, что будут конфликты между всеми этими библиотеками / плагинами JS или внутри DOM.

Что касается выбора правильной библиотеки, то это действительно зависит от того, какой сайт / приложение вы делаете. Если вы просто хотите использовать готовые плагины, то нет большой разницы, какую библиотеку вы используете, и вы должны просто выбрать ту, которая содержит больше плагинов, которые вы хотите использовать, и я уверен, что jQuery - лучший выбор здесь, так как у него больше всего плагинов.

С другой стороны, если вы хотите написать свои собственные компоненты / плагины / код, тогда вы должны протестировать каждый из них и посмотреть, какой из них соответствует вашему стилю кодирования, и спроектировать лучший. Например, некоторое время назад я обнаружил, что Prototype лучше подходит моему вкусу и вполне подходит для больших JS-проектов. Но с тех пор jQuery прошел долгий путь, поэтому я бы попробовал каждую из самых популярных библиотек, если бы мне нужно было создать новый проект.

0 голосов
/ 06 октября 2009
  • Рассмотрим ситуацию, когда у 99% целевого потребителя не включен JavaScript в их браузере, и вы пишете тяжелый код JavaScript на своем веб-сайте.
  • Также javascript запускается на клиентском компьютере с очень низким приоритетом, что может снизить производительность вашего сайта.

И еще один

  • Весь ваш javascript-код становится доступным, поскольку javascript является интерпретируемым языком
0 голосов
/ 06 октября 2009

Не забывайте также, что у некоторых пользователей может быть отключен Javascript, поэтому наличие некоторых необходимых функций сайта (например, меню, навигации, форм и т. Д.) На основе JS приведет к тому, что эти пользователи не смогут просматривать ваш сайт.

0 голосов
/ 06 октября 2009

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

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

И, наконец, что если у пользователя нет javascript или он выключен? Это полностью сломает ваш сайт?

0 голосов
/ 06 октября 2009

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

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

Возможно, есть некоторые исключения, например, использование общего фреймворка, такого как jQuery, вместе с более конкретным, например, Raphael, но обычно это решается с помощью плагинов.

...