content-management-system - 如何找到 Liferay 中 javascript 文件的连接顺序?

标签 content-management-system liferay liferay-6

因此,在 Liferay 中,我们有一个包含所有核心 javascript 的 ROOT/html/js 文件夹。有人可以向我解释创建串联 js 文件的确切机制吗? barebone.jsp 和 everything.jsp 之间有什么区别?在代码中的哪里可以看到文件连接成一个文件的顺序?

我可以看到 top_js.jspf 文件,但我仍然不清楚。

提前致谢。

最佳答案

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 花费大量时间。 “barebones”和“everything”连接并缩小所有文件并将它们作为一个整体进行传输。通常,仅传输一个文件比传输多个文件要快得多,即使所有文件加起来的长度相同。

虽然人们可以争论 Liferay 的一般文档数量,但我想说你不能争论 Portal.properties 是 Liferay 中最好的文档文件之一。看看它 - 这样做会让您深入了解 Liferay 可以做哪些巧妙的事情。

关于content-management-system - 如何找到 Liferay 中 javascript 文件的连接顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270117/

相关文章:

url-rewriting - Liferay 资源 URL 和操作 URL 之间的参数差异

liferay - 如何知道网站管理员和网站所有者拥有哪些权限?

java - Liferay 门户的 LDAP 配置不起作用

tomcat - Liferay:如何添加新的 JSONWebService 方法

haskell - 函数式编程语言中的 CMS

mysql - 哪个最适合我的需求 : MongoDB, CouchDB 或 MySQL。相关定义的标准

file-upload - Liferay.Upload 组件用于多文件上传

php - 客户端编辑几个页面。迷你内容管理系统?

php - Wordpress:访问存储在主题文件夹中的子文件夹中的模板

elasticsearch - Liferay dxp中的Indexer和IndexWriter类之间有什么区别?