Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.04.2014, 17:50
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

вопрос по require.js
В статье http://habrahabr.ru/post/145269/ про загрузку и инициализацию js были показаны различные попытки ускорить загрузку приложения на медленном интернете (7кб/c).
Например, сначала просто загрузили скрипты последовательно/параллельно, затем попытались сконкатенировать все и минифицировать, -> запросов стало меньше, скорость улучшили, затем
решили использовать require.js, из статьи:

Цитата:
1. Грузим основные части
2. Остальное по необходимости
3. Автодогрузка зависимостей
То есть загрузили основную часть, остальное по требованию, не смотря на то что запросов больше, основная часть загрузится быстрее.

Это случай, когда мне понятно, зачем использовать require.js.

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

То есть "обычный" случай:
Наши скрипты, подгружаются все сразу
<script src="dep-for-module-A.js"></script>
<script src="dep2-for-module-A.js"></script>
<script src="moduleA.js"></script>
<script src="dep-for-module-B.js"></script>
<script src="dep2-for-module-B.js"></script>
<script src="module-B.js"></script>
<script src="main.js"></script>


Мы не можем здесь разместить модуль A над модулем dep-for-module-A, из за зависимостей, поэтому порядок нужно соблюдать.

Сами модули что-то вроде этого:

( function( global ) {
  var dep1 = global.depA1;
  var dep2 = global.depA2;
  function ModuleA() {
    // ...
  }
  // export
  global.ModuleA = ModuleA;
})( this );



Ну и соответственно в продакшне мы это все конкатенируем-минифицируем, в девелопменте оставляем как есть.

Для чего в таком случае(когда нет подгрузки скриптов по требованию) использовать require.js, и нужно ли?

1. Как я понял одна из причин - когда js файлов становится слишком много, чтобы не париться и не следить какой расположить выше другого.
2.Второе - не засоряется глобальное пространство имен (Require.js вроде как способствует этому).
3.Вроде как хороший встроенный оптимизатор для склейки/минификации файлов.
Ответить с цитированием
  #2 (permalink)  
Старый 16.04.2014, 19:09
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Ну в первую очередь - это очередная попытка решить проблему модулей. В связи с добавлением нативных модулей в JS данная технология скорее всего станет использоваться лишь в качестве полифилов.
__________________
kobezzza
code monkey
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2014, 00:22
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от kobezzza
Ну в первую очередь - это очередная попытка решить проблему модулей
и их зависимостей

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

Сообщение от Shaci
Для чего в таком случае(когда нет подгрузки скриптов по требованию) использовать require.js, и нужно ли?
на мой взгляд не нужно

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

Сообщение от Shaci
1. Как я понял одна из причин - когда js файлов становится слишком много, чтобы не париться и не следить какой расположить выше другого
Слишком много - понятие субъективное. В первом случае при самых скромных подсчетах у меня получается только скриптов 18+ файлов. Во втором тех же скриптов >160 файлов (но это не продакшн).

Сообщение от Shaci
2.Второе - не засоряется глобальное пространство имен (Require.js вроде как способствует этому).
Это уже из ряда вон. Если ты какаешь в глобал, ты сам расставляешь для себя капканы

Сообщение от Shaci
3.Вроде как хороший встроенный оптимизатор для склейки/минификации файлов.
Не понятно каким боком. Должно быть на сервере.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 17.04.2014 в 00:27.
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2014, 02:07
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от nerv_
Если ты какаешь в глобал
умеренно), один глобальный объект, у него уже свойства
Ответить с цитированием
  #5 (permalink)  
Старый 17.04.2014, 12:01
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от nerv_
Не понятно каким боком. Должно быть на сервере.
ну, это да
Ответить с цитированием
  #6 (permalink)  
Старый 19.04.2014, 00:19
Аватар для vflash
Профессор
Отправить личное сообщение для vflash Посмотреть профиль Найти все сообщения от vflash
 
Регистрация: 09.07.2007
Сообщений: 304

require.js - говно
размазывать загрузку скиптов ради пары килобай - глупость
__________________
лучшая rss читалка zzreader.com
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Всплытие событий или что то не так... Кирюха =) jQuery 6 30.03.2013 12:56
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Я как ответить на вопрос - есть ли жизнь на других планетах? TicTac Оффтопик 5 28.04.2011 04:29
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49