Comments (3)
Seams strange, doc state that this is possible to nest dynamic
https://htmlflow.org/features/ see the dynamic views section (would be nice to be able to link to a section and to a specific example)
from htmlflow.
Good catch! That example is outdated. Put it simply, in those cases we should use .of()
nested in the dynamic()
. (we have forgotten to update that example).
That is the result of release 3.0 and several optimizations https://github.com/xmlet/HtmlFlow#30-november-2018. Thus the .dynamic()
gained a new perspective. To achieve better performance the HTML resulting of the templates resolution is internally cached. In truth that cache should be renamed to something like static denoting that HTML do not change between resolutions. On the other hand, the HTML resulting from dynamic()
should be resolved on each render.
Whenever we call dynamic()
we stop caching the HTML and when we close that dynamic block with .__()
we start caching again the resulting HTML.
So, if we are inside a dynamic block and we call again dynamic it has no effect, because the outer block will be completely computed on render and that includes the inner block too. To avoid misleading we decided to throw that exception if the programmer made a wrong use of dynamic.
Yet, it is useful the chaining ability. So, fir that purpose we added a new .of()
that let we chain any Java block, but without any side effect on caching. Thus, if you call of()
out of a dynamic it will continue to cache. If you call of()
inside a dynamic then it will not cache the resulting HTML.
Thanks,
Miguel
from htmlflow.
@fmcarvalho
Thanks for this response! I was abusing nested .dynamic() calls to make the code formatter produce indented code (for readability => helps avoiding bugs).
I got to work around it, but was ready to ditch HtmlFlow. Now with ".of()" I am back to enjoying it ;-).
from htmlflow.
Related Issues (20)
- View with dynamic and static attribute / Placement of dynamic() block HOT 6
- Inline SVG from string add to view HOT 2
- How to use For Loop / If condition / Map with HTML FLow? HOT 6
- Tags gets confused with text HOT 2
- setIndented(false) also removes new lines from text in views HOT 3
- Missing oncontextmenu and disable textarea whitespace HOT 6
- Typos in blog post HOT 2
- Documentation expansion HOT 2
- Gradle build warnings... HOT 5
- Groovy compilation errors ... HOT 4
- Security Scan Warning - JSOUP...? HOT 1
- Input attribute checked=false|true not compliant HOT 3
- Cannot have full dynamic page HOT 1
- Is there any idea code folding plugin recommendation? HOT 3
- slf4j-simple should not be declared as a dependecy HOT 2
- Multiple model with single template HOT 3
- option.attrSelected unexpected behavior HOT 7
- Enhance documentation with complete list of methods HOT 4
- Script tag, attribute type HOT 5
- Reflexion on template and java 21 features HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from htmlflow.