所以,在Liferay中我们有一个ROOT/html/js
文件夹,其中包含所有核心javascript。有人可以解释我创建连接的js文件的确切机制。 barebone.jsp和everything.jsp有什么区别?在代码中我可以看到文件连接成一个文件的顺序?
我可以看到top_js.jspf
档案,但不过我还不清楚。
提前致谢。
答案 0 :(得分:5)
Liferay的portal.properties是最好的文档文件之一。您可以在Liferay Wiki或portal-impl.jar中找到它。
在那里搜索“准系统”或“一切”或只是“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。 “准系统”和“一切”连接并缩小所有文件并将它们作为一个传输。通常,只传输一个文件比传输多个文件要快得多,即使所有文件的长度都相同。
虽然人们可以争论一般Liferay的文档数量,但我会说你不能争论portal.properties是Liferay中最好的文档文件。看一下它 - 这样做会让你对Liferay可以做些什么做得很好。
答案 1 :(得分:0)
请记住,准系统列表是在已注销状态下列出的javascript文件。所有列表都是所有列表和准系统列表的组合。