Jump to content
Sign in to follow this  
Esox

205 kb джава монстр - как уменьшить?

Recommended Posts

Добрый вечер.

 

Вопрос слегка необычный, но все же отважусь спросить.

 

при загрузке страницы в браузер ползет вот это чудовище:

 

catalog/view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js

 

весит оно 205 kb. Отвечает как я понял это вывод меню категорий.

 

Вопрос: Там действительно эти 205 kb джавы нужны?

Share this post


Link to post
Share on other sites

Добрый вечер.

 

Вопрос слегка необычный, но все же отважусь спросить.

 

при загрузке страницы в браузер ползет вот это чудовище:

 

catalog/view/javascript/jquery/ui/jquery-ui-1.8.16.custom.min.js

 

весит оно 205 kb. Отвечает как я понял за меню.

 

Вопрос: Там действительно эти 205 kb джавы нужны?

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

Share this post


Link to post
Share on other sites

при этом я посмотрел, у всех эта дрянь тащится (((

Share this post


Link to post
Share on other sites

1. Здесь нет никакой джавы.

2. Такие вещи обычно прекрасно кешируются броузерами и повторно не качаются на каждой странице

Share this post


Link to post
Share on other sites

 - пользователь не будет грузить при каждом посещении эти 205Кб так как есть кеш браузера. 

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

Share this post


Link to post
Share on other sites

Так как по умолчанию опенкарт наверное в этот файл пихает полную комплектацию

Вряд ли полную. Или полную? Зачем тогда отдельно лежит папка с jquery сценариями: catalog\view\javascript\jquery\ui\minified\ ?

По САБЖ: Олдскульный вопрос. Последние 5-8 лет уже не актуально. Но если хотите ускорить загрузку сайта или снизить кол-во трафика за счет файла jquery-ui-1.8.16.custom.min.js  - воспользуйтесь репозиторием Google. Вот только я не уверен, что там есть Jquery Ul и мне кажется, что слово custom в названии файла указывает на уникальность OpenCart'овской сборки.

Share this post


Link to post
Share on other sites

Query UI позволяет собирать произвольную конфигурацию виджетов, компонентов, эффектов и прочего

http://jqueryui.com/download/

 

сам думал над этим, в некоторых темах видел, что подключат только часть jQuery UI, но нет времени разбираться какие именно используются в движке. точно знаю, что filter pro использует jQuery UI Slider

Share this post


Link to post
Share on other sites

Так как по умолчанию опенкарт наверное в этот файл пихает полную комплектацию

Вряд ли полную. Или полную? Зачем тогда отдельно лежит папка с jquery сценариями: catalog\view\javascript\jquery\ui\minified\ ?

 

Вот что входит в этот файл:

 

 
/*
 * jQuery UI 1.8.16
 * jQuery UI Widget 1.8.16
 * jQuery UI Mouse 1.8.16
 * jQuery UI Position 1.8.16
 * jQuery UI Draggable 1.8.16
 * jQuery UI Droppable 1.8.16
 * jQuery UI Resizable 1.8.16
 * jQuery UI Selectable 1.8.16
 * jQuery UI Sortable 1.8.16
 * jQuery UI Accordion 1.8.16
 * jQuery UI Autocomplete 1.8.16
 * jQuery UI Button 1.8.16
 * jQuery UI Dialog 1.8.16
 * jQuery UI Slider 1.8.16
 * jQuery UI Tabs 1.8.16
 * jQuery UI Datepicker 1.8.16
 * jQuery UI Progressbar 1.8.16
 * jQuery UI Effects 1.8.16
 * jQuery UI Effects Blind 1.8.16
 * jQuery UI Effects Bounce 1.8.16
 * jQuery UI Effects Clip 1.8.16
 * jQuery UI Effects Drop 1.8.16
 * jQuery UI Effects Explode 1.8.16
 * jQuery UI Effects Fade 1.8.16
 * jQuery UI Effects Fold 1.8.16
 * jQuery UI Effects Highlight 1.8.16
 * jQuery UI Effects Pulsate 1.8.16
 * jQuery UI Effects Scale 1.8.16
 * jQuery UI Effects Shake 1.8.16
 * jQuery UI Effects Slide 1.8.16
 * jQuery UI Effects Transfer 1.8.16
 */
 

Из этого всего по-моему используется только Tabs и Datepicker. 

То есть можно собрать свой кастомный файл, включить туда Tabs и Datepicker и зависимости + смотреть по своим модулям, некоторые используют автокомплит, некоторые слайдер. 

  • +1 1

Share this post


Link to post
Share on other sites

По поводу кеширования, у меня он скручивается gzip-ом, но это съедает силы VPS-а.

 

Вопрос как раз не олдскульный. И как раз очень актуальный, если задуматься над ускорением.

Share this post


Link to post
Share on other sites

Подключите этот файл с внешнего источника:

Google CDN http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js 

Microsoft CDN http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.16/jquery-ui.min.js

 

ссылка на блог http://blog.jqueryui.com/2011/08/jquery-ui-1-8-16/ там еще ссылки на темы есть

Share this post


Link to post
Share on other sites

А в чем плюс внешнего источника? Его тогда gzip-пом не пожать будет.

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites

Спасибо sv2109 и фринансер, скажите еще, вот это:

 

catalog/view/javascript/jquery/jquery-1.7.1.min.js

 

Есть ли ему альтернатива? Тут не нашел, и нужен ли он? За что он отвечает?

Share this post


Link to post
Share on other sites

нужен. это пожалуй самый важный js файл, без которого не будет работать остальные

Share this post


Link to post
Share on other sites

ещё видел скрипт, который грузит с локального если cdn недоступен

freelancer, если реп. гугла ляжет треть инета ляжет :)

Share this post


Link to post
Share on other sites

cdn может быть недоступен по ряду других причин

Share this post


Link to post
Share on other sites

freelancer, а jquery-1.7.1.min.js можно с cdn дергать или его там нет? Уж больно скорость высока у этого cdn )))

Share this post


Link to post
Share on other sites

jquery-ХХХ - сама jQuery библиотека.

jquery-ui-ХХХ - дополнительная библиотека (эффекты, виджеты, слайдеры и прочее).

Share this post


Link to post
Share on other sites

По поводу кеширования, у меня он скручивается gzip-ом, но это съедает силы VPS-а.

Этим вы только чуть ускорите передачу между своим сервером и броузером клиента (если он вообще скажет, что поддерживает gzip. В принципе, может и не сказать). Ну ещё чуть трафик уменьшите (если есть месячные лимиты). Плюс сервер немного нагрузите (про это уже в курсе).

К кешированию броузером клиента это никакого отношения не имеет.

При первом запросе он его скачает и сохранит в кеше. При последующих сервер ему скажет 304 (not modified) - и нормальный воспитанный броузер не станет повторно запрашивать JS (CSS и т.п.) файл, если оно уже у него в кеше лежит.

Чем хорошо для вас отдавать этот jquery.js с гугловских (яндексовских и т.п.) CDN-ов? Тем, что часть запросов от броузера клиента уйдёт не на ваш сервер, а на гугловские. Которые, во-первых, обычно быстрее (т.к. их больше и расположены они ближе к клиенту), а во-вторых, не будут тормозить другие запросы со страницы к вашему серверу.

То есть это позволит понизить нагрузку на сервер (раз) и ускорить для посетителей загрузку страниц (это два).

А в десятых -- этот вопрос уже не раз обсуждался. И в интернетиках, и на этом форуме.

Share this post


Link to post
Share on other sites

А в одиннадцатых -- кто нить ответит по jquery-1.7.1.min.js? :-)

Share this post


Link to post
Share on other sites

еще один хинт. Для того, чтобы технология с использованием CDN работала на любых протоколах, не нужно указывать тип протокола, обычно http://

 

 

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>

 
  • +1 1

Share this post


Link to post
Share on other sites

А в одиннадцатых -- кто нить ответит по jquery-1.7.1.min.js? :-)

На какой вопрос? На все Вами заданные уже три человека ответили.

Или "чукча не читатель, чукча - писатель!"?

Esox:

catalog/view/javascript/jquery/jquery-1.7.1.min.js

Есть ли ему альтернатива? Тут не нашел, и нужен ли он? За что он отвечает?

freelancer: нужен. без него остальное работать не будет.

afwollis: jquery-ХХХ - сама jQuery библиотека.

cmd: ссылка на то, что такое минификация

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.