ryan-allen / lazy-loader Goto Github PK
View Code? Open in Web Editor NEWThis project forked from joho/lazy-loader
Keeps controllers clean in the face of ugly fragment caching using a lazy load
License: MIT License
This project forked from joho/lazy-loader
Keeps controllers clean in the face of ugly fragment caching using a lazy load
License: MIT License
Lazy Loader =========== got some expensive method call in you controller for some data that isn't always used in the view (perhaps it's referred to in a partial cache block)? Don't want to mess up your controller with duplicate conditionals from your views? use the lazy loader! it's easy and fun! if in your controller you previously had def index @posts = Post.find_all_by_a_painfully_slow_method end you would now write def index @posts = lazy_load { Post.find_all_by_a_painfully_slow_method } end and your painfully slow finder methods will only be called if @posts is actually referred to in the view. This works by created a LazyLoader proxy object that takes the place of your collection (or whatever it is) and will instantiate your object the first time any method is called on it. It then caches your original object and routes all methods calls through. You will get a performance hit if you are calling many methods on your object, but the common case for these is returning a collection of ActiveRecord::Base and once you've called each you're done with the proxy. Hopefully this can help you keep your data code neat and tidy in the face of caching and nasty complex views ===================================== Copyright 2008 John Barton and Envato
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.