Elegant and Minimalistic Javascript Application Library
MIT License
Bot releases are hidden (Show)
Published by Javiani 29 days ago
innerHTML
feature. It was broken for elements outside body
tree. Like html
, head
etc. The alternative has also improve performance for this kind of operation.Published by Javiani 30 days ago
The most recent updates aimed to enhance performance, but we encountered inconsistencies with HTML updates during testing. To ensure greater consistency and predictability, a significant change was implemented, replacing morphdom with idiomorph.
There are other well known libraries that already made that change:
We are indeed using idiomorph and we'll include it officially as part of Turbo 8. We started with morphdom, but eventually switched to idiomorph as we found it way more suitable. It just worked great with all the tests we threw at it, while morphdom was incredibly picky about "ids" to match nodes. Also, we noticed it's at least as fast.
-- Jorge Marubia / 37Signals
That helps on decision making about changing the core of the library which is the dom diff engine.
Published by Javiani 6 months ago
Reverting previous release : Performance Improvement
The latest update focused on optimizing memory usage. However, as Jails is designed to function with or without templates, a bug has been identified when users interact directly with the DOM. Therefore, I am rolling forward the current build. Prioritizing correctness over performance remains our primary concern.
The performance optimization was not discarted but it requires more deep research.
Published by Javiani 6 months ago
Making Templates smaller by removing child component html content from parent component template by creating "holes" inside the parent component template string.
Since parent component doesn't update child components html, it doesn't need to have child html data saved in memory.
This improvement is very welcome especially for pages that contains application component in the most top level hierarchy.
Published by Javiani 7 months ago
The change is related to the previous update.
It was added the behavior in main
to wait until template is fully rendered when using export template
interface.
Published by Javiani 7 months ago
Adding template
interface in component module. It will replace the current HTMLElement
template html.
It will unlock a way to set a html dynamically.
export const template = () => '<h1>Hello World</h1>'
export const template = async () => '<h1>Hello World</h1>'
Published by Javiani 10 months ago
5.5.4
dependencies
helper to avoid raising unnecessary exceptions.Published by Javiani 10 months ago
innerHTML
interface to accept a DOMElement target.Published by Javiani 11 months ago
.start
method, for cases where user wants to call it sending a optional target.Published by Javiani 11 months ago
Published by Javiani 11 months ago
✓ Stabilizing template system shared variable through child components.
✓ Adding new feature innerHTML
that will make possible to update a component with html
string instead of an object, using dom diffing for performance. Useful for server-side oriented UI, like htmx.
export const myComponent ({ main, on, innerHTML }) {
main( _ => {
on('click', 'button', updateUI)
})
const updateUI = () => {
fetch('my-service/ui/user-ui-updated')
.then( response => response.text() )
.then( html => innerHTML( html ) )
}
}
Published by Javiani about 1 year ago
html
interface to work with Template Strings and get benefit of html tagged functions syntax highlighting on code editors.import { html } from 'jails-js'
export const Template = (data) => {
return html`<h1>My title</h1>`
}
Published by Javiani about 1 year ago
main
to a new pattern, deprecating functions list, using void function instead. ( Simplicity )Published by Javiani about 1 year ago
html-model
strategy.jails.start
Published by Javiani about 1 year ago
html-class
directive.Published by Javiani about 1 year ago
Published by Javiani about 1 year ago
html-
properties.html-value="counter"
- It was not working for cases when counter is 0
.Published by Javiani about 1 year ago
html-model
was not working for some scenarios.$index
special variable was not being created on object iterations.Published by Javiani about 1 year ago