Как мне найти порядок, в котором файлы javascript объединяются в Liferay? - PullRequest
2 голосов
/ 01 сентября 2011

Итак, в Liferay у нас есть папка ROOT/html/js со всем основным javascript.Может кто-нибудь объяснить мне точный механизм создания сцепленного JS-файла.В чем разница между barebone.jsp и everything.jsp?Где в коде я вижу порядок, в котором файл объединяется в один файл?

Я вижу top_js.jspf файл, но тем не менее он мне не понятен.

Заранее спасибо.

Ответы [ 2 ]

5 голосов
/ 02 сентября 2011

Liferay portal.properties - один из лучших документированных файлов.Вы найдете его либо в Liferay Wiki, либо в portal-impl.jar.

Там ищите «barebone», «everything» или просто «Javascript».Оттуда я скопировал следующую документацию:

#
# Set a list of JavaScript files that will be loaded automatically in
# /html/common/themes/top_js.jsp.
#
# There are two lists of files specified in the properties
# "javascript.barebone.files" and "javascript.everything.files".
#
# As the name suggests, the barebone list is the minimum list of JavaScript
# files required for most cases. The everything list includes everything
# else not listed in the barebone list.
#
# The two lists of files exist for performance reasons because
# unauthenticated users usually do not utilize all the JavaScript that is
# available. See the property "javascript.barebone.enabled" for more
# information on the logic of when the barebone list is used and when the
# everything list is used and how to customize that logic.
#
# The list of files are also merged and packed for further performance
# improvements. See the property "javascript.fast.load" for more details.
#

#
# Specify the list of barebone files.
#
# The ordering of the JavaScript files is important.
#
# The Liferay scripts are grouped in such a way, that the first grouping
# denotes utility scripts that are used by the second and third groups. The
# second grouping denotes utility classes that rely on the first group, but
# does not rely on the second or third group. The third grouping denotes
# modules that rely on the first and second group.

javascript.barebone.files= ... (omitted here, multiline)

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

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

#
# Set this property to false to always load JavaScript files listed in the
# property "javascript.everything.files". Set this to true to sometimes
# load "javascript.barebone.files" and sometimes load
# "javascript.everything.files".
#
# The default logic is coded in com.liferay.portal.events.ServicePreAction
# in such a way that unauthenticated users get the list of barebone
# JavaScript files whereas authenticated users get both the list of barebone
# JavaScript files and the list of everything JavaScript files.
#
javascript.barebone.enabled=true

Причина всего этого заключается в том, что во многих случаях клиенты хотят минимизировать объем передаваемых данных и выполнение JavaScript.Если все будет полностью динамичным, это приведет к переносу большого количества файлов, что занимает много времени через http.«barebones» и «everything» объединяют и минимизируют все файлы и передают их как один.Как правило, передача только одного файла происходит намного быстрее, чем передача нескольких файлов, даже если все они имеют одинаковую длину.

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

0 голосов
/ 06 февраля 2015

Пожалуйста, помните, что список barebones-файлов - это файл javascript, указанный в состоянии выхода из системы. Список «Все» представляет собой комбинацию списка «Все» и списка «barebones».

...