Load some .js and .css into the page header. This is mainly used in development mode, when the library is not yet bundled and minified
Methods
# static getLibraryPath() → {string}
Get the path to the KissJS library, as defined in the script tag.
The path to the KissJS library
string
# async static loadLibrary(config)
Load KissJS library dynamically from all its source files.
- In development, KissJS is a collection of javascript and css files that must be loaded separately
- UI eXtensions (UX) always need to be loaded manually and separately
- In production, KissJS is bundled and doesn't require to load modules dynamically
Please note that dynamic loading of libraries is a bit tricky and hacky:
- Because a librariy can depend on another one, they must be loaded in the right order
- KissJS uses this technic because the native browser module system doesn't support file:// path (and KissJS does)
- We couldn't use external dependencies (like requirejs, systemjs...) which don't work with file path (file://)
Parameters:
| Name | Type | Description |
|---|---|---|
config |
object
|
|
useDb |
object
|
If false, load the library without the db/data related scripts (default is true) |
useUx |
object
|
If false, load the library without the ui extensions (default is true). |
# static loadScript(path, configopt)
Load a script file asynchronously into the page.
Parameters:
| Name | Type | Attributes | Default | Description |
|---|---|---|---|---|
path |
string
|
Provide the path to the javascript file, without the extension .js |
||
config |
object
|
<optional> |
Optional object configuration |
|
options |
object
|
<optional> |
Optional object to pass any custom attributes to the script tag, like id, data-*, defer, async... |
|
autoAddExtension |
string
|
boolean
|
<optional> |
'.js' | The extension to auto append to the path url. Default is '.js'. Set to false to disable it. |
Example
kiss.loader
.loadScript("views/common/topbar")
.then(() => {
console.log("Javascript file loaded!")
})
// With options. This is equivalent to:
// <script async type="text/javascript" src="https://www.dropbox.com/static/api/2/dropins.js" id="dropboxjs" data-app-key="2tkajpbphy1m8dj"></script>
kiss.loader.loadScript("https://www.dropbox.com/static/api/2/dropins.js", {
id: "dropboxjs",
"data-app-key": "2tkajpbphy1m8dj"
})
# static loadScripts(paths)
Load many scripts asynchronously and resolve Promise when all scripts are loaded
Parameters:
| Name | Type | Description |
|---|---|---|
paths |
Array.<string>
|
Array of javascript file paths to load, without .js extension |
Example
kiss.loader
.loadScripts([
"views/common/topbar",
"views/common/logo",
"views/common/buy"
]).then(() => {
console.log("All javascript files are loaded!")
})
# static loadStyle(path)
Load a CSS file asynchronously into the page
Parameters:
| Name | Type | Description |
|---|---|---|
path |
string
|
Provide the path to the CSS files, without the extension .css |
Example
kiss.loader
.loadStyle("views/common/topbar")
.then(() => {
console.log("CSS file loaded!")
})
# static loadStyles(paths)
Load many styles asynchronously and resolve Promise when all styles are loaded
Parameters:
| Name | Type | Description |
|---|---|---|
paths |
Array.<string>
|
Array of CSS file paths to load, without .cess extension |
Example
kiss.loader
.loadStyles([
"views/common/topbar",
"views/common/logo",
"views/common/buy"
]).then(() => {
console.log("All CSS files are loaded!")
})