JavaScript Packaging"
m |
m (correct highlight (via JWB)) |
||
(15 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | {{ | + | {{ZKClient-sideReferencePageHeader}} |
__TOC__ | __TOC__ | ||
− | If you'd like to customize the client-side behavior | + | If you'd like to customize the client-side behavior, it will end up with some JavaScript code. The code can be packaged in several ways depending on the size and re-usability. |
+ | |||
+ | It is recommended to take a look at the [[ZK_Client-side_Reference/Introduction/Object_Oriented_Programming_in_JavaScript|Object-Oriented Programming in JavaScript]] section, if you are not familiar how ZK extends JavaScript to support the concept of packages and classes. | ||
=Embed the JavaScript Code Directly= | =Embed the JavaScript Code Directly= | ||
Line 24: | Line 26: | ||
=Put in a Separate File and Reference it in Language Addon= | =Put in a Separate File and Reference it in Language Addon= | ||
− | If the JavaScript code will be used in every ZUML | + | If the JavaScript code will be used in every ZUML page, it is better to package them in a separate file, and then make it part of the [[ZUML Reference/ZUML/Languages|the language definition]]. To make it part of the language definition, you could specify the following content in [[ZK Client-side Reference/Language Definition|the language addon]], say, <code>WEB-INF/lang-addon.xml</code>: |
<source lang="xml"> | <source lang="xml"> | ||
<language-addon> | <language-addon> | ||
− | <javascript src="/myjs/foo.js"/> | + | <addon-name>my.extension</addon-name><!-- any name you like --> |
+ | <javascript src="/myjs/foo.js"/> <!-- assume you package it as /myjs/foo.js --> | ||
</language-addon> | </language-addon> | ||
</source> | </source> | ||
− | Then, you could specify the language addon in < | + | Then, you could specify the language addon in <code>WEB-INF/zk.xml</code>: |
<source lang="xml"> | <source lang="xml"> | ||
Line 40: | Line 43: | ||
</source> | </source> | ||
− | < | + | =Make It a WPD File for More Control= |
− | ---- | + | Technically, you could do whatever you want with a JavaScript file. However, if you prefer to make it a JavaScript package, such that they will be loaded automatically when required, you could package them as [[ZK Client-side Reference/Widget Package Descriptor|a WPD file]]. |
− | < | + | |
− | </ | + | For example, you could have a WPD file and make it loaded with the zk package (so [[ZK Developer's Reference/Performance Tips/Minimize Number of JavaScript Files to Load|it speeds up the loading]]). |
+ | |||
+ | <source lang="xml"> | ||
+ | <language-addon> | ||
+ | <addon-name>my.extension</addon-name><!-- any name you like --> | ||
+ | <javascript package="my.foo" merge="true"/> <!-- assume you call it my.foo --> | ||
+ | </language-addon> | ||
+ | </source> | ||
=Version History= | =Version History= | ||
Line 55: | Line 65: | ||
|} | |} | ||
− | {{ | + | {{ZKClient-sideReferencePageFooter}} |
Latest revision as of 03:23, 18 January 2022
If you'd like to customize the client-side behavior, it will end up with some JavaScript code. The code can be packaged in several ways depending on the size and re-usability.
It is recommended to take a look at the Object-Oriented Programming in JavaScript section, if you are not familiar how ZK extends JavaScript to support the concept of packages and classes.
Embed the JavaScript Code Directly
Use the script directive to embed the code directly. For example,
<!-- foo.zul -->
<?script type="text/javascript" content="jq.IE6_ALPHAFIX='.png';"?>
Alternatively, you could use the script component to embed the code.
Put in a Separate File and Reference it in the ZUML page
If there are a lot of JavaScript code, it is better to package them in a separate file, and then use the script directive to reference the file in every ZUML page that requires it.
<!-- foo.zul -->
<?script type="text/javascript" src="/myjs/foo.js"?>
Put in a Separate File and Reference it in Language Addon
If the JavaScript code will be used in every ZUML page, it is better to package them in a separate file, and then make it part of the the language definition. To make it part of the language definition, you could specify the following content in the language addon, say, WEB-INF/lang-addon.xml
:
<language-addon>
<addon-name>my.extension</addon-name><!-- any name you like -->
<javascript src="/myjs/foo.js"/> <!-- assume you package it as /myjs/foo.js -->
</language-addon>
Then, you could specify the language addon in WEB-INF/zk.xml
:
<language-config>
<addon-uri>/WEB-INF/lang-addon.xml</addon-uri>
</language-config>
Make It a WPD File for More Control
Technically, you could do whatever you want with a JavaScript file. However, if you prefer to make it a JavaScript package, such that they will be loaded automatically when required, you could package them as a WPD file.
For example, you could have a WPD file and make it loaded with the zk package (so it speeds up the loading).
<language-addon>
<addon-name>my.extension</addon-name><!-- any name you like -->
<javascript package="my.foo" merge="true"/> <!-- assume you call it my.foo -->
</language-addon>
Version History
Version | Date | Content |
---|---|---|