JavaScript partitioning is the way ADF Faces partitions and delivers
JavaScript code to the client. ADF Faces groups its ADF Faces components
JavaScript code into so called features and then packages and delivers related features in so called JavaScript partitions. There are two files involved in the delivery of JavaScript partitions to the client: adf-js-features.xml and adf-js-partitions.xml.
The first lists the JavaScript classes that make up a feature and its
relationships with other features. The second groups the JavaScript
features in partitions.
Of course JavaScript can also be delivered to the client by directly adding the JavaScript code to the page or referencing a JavaScript library in the page. Bundling all of your JavaScript code in a few JavaScript Libraries will result in longer download time, while adding JavaScript directly to each page will result in more roundtrips to the server. This is why partitioning is used, as an alternative to specifically tune and customize the JavaScript requirements on a per-application basis.
Here are some examples of the adf-js-features.xml and adf-js-partitions.xml JavaScript partitioning files:
Example:
META-INF/adf-js-features.xml
<?xml version="1.0" encoding="utf-8" ?>
<adf-js-features xmlns="http://xmlns.oracle.com/adf/faces/feature">
<features xmlns="http://xmlns.oracle.com/adf/faces/feature">
<feature>
<feature-name>CustomComponent</feature-name>
<feature-class>js/custom/CustomComponent.js</feature-class>
<feature-class>js/custom/CustomComponentEvent.js</feature-class>
<feature-dependency>AdfRichPopup</feature-dependency>
</feature>
</features>
</adf-js-features>
WEB-INF/adf-js-partitions.xml
<?xml version="1.0" encoding="utf-8" ?>
<partitions xmlns="http://xmlns.oracle.com/adf/faces/partition">
<partition>
<partition-name>CustomPartition</partition-name>
<feature>CustomComponent</feature>
<feature>CustomCommon</feature>
<feature>CustomUtils</feature>
</partition>
</partitions>
Context:
ADF Faces
Of course JavaScript can also be delivered to the client by directly adding the JavaScript code to the page or referencing a JavaScript library in the page. Bundling all of your JavaScript code in a few JavaScript Libraries will result in longer download time, while adding JavaScript directly to each page will result in more roundtrips to the server. This is why partitioning is used, as an alternative to specifically tune and customize the JavaScript requirements on a per-application basis.
Here are some examples of the adf-js-features.xml and adf-js-partitions.xml JavaScript partitioning files:
Example:
META-INF/adf-js-features.xml
<?xml version="1.0" encoding="utf-8" ?>
<adf-js-features xmlns="http://xmlns.oracle.com/adf/faces/feature">
<features xmlns="http://xmlns.oracle.com/adf/faces/feature">
<feature>
<feature-name>CustomComponent</feature-name>
<feature-class>js/custom/CustomComponent.js</feature-class>
<feature-class>js/custom/CustomComponentEvent.js</feature-class>
<feature-dependency>AdfRichPopup</feature-dependency>
</feature>
</features>
</adf-js-features>
WEB-INF/adf-js-partitions.xml
<?xml version="1.0" encoding="utf-8" ?>
<partitions xmlns="http://xmlns.oracle.com/adf/faces/partition">
<partition>
<partition-name>CustomPartition</partition-name>
<feature>CustomComponent</feature>
<feature>CustomCommon</feature>
<feature>CustomUtils</feature>
</partition>
</partitions>
Context:
ADF Faces
This is why partitioning is used, as an alternative to specifically tune and customize the JavaScript requirements on a per-application basis.psd to css
ReplyDelete