Optimizations in Data Access Calls
There are three data layers in FarBox:
Core Database Layer, and
Fulltext Search Layer. The performance is degressive in the sequence that mentioned above.
Data API calls is mainly from
Core Database Layer. But when fulltext searching, hits
Fulltext Search Layer first than
Core Database Layer.
Every rendered page will be cached in the server for 24 hours.
The cache key of a page is computed by
URL + last updated date of site + language of web browser.
macro is used in a template file, and the name of macro function starts with
cache_, then the partial cache will be used.
The partial cache key is computed by
macro function name + parameters + last updated date of site + language of web browser.
Super Partial Cache
A question comes, if a page is stored in the cache, will the visits of a post is stored too?
To handle this situation, in FarBox system, we have another kind of cache, named
Super Partial Cache.
The rendering time of every page can't exceed 2.5 seconds (a common page usually less than 0.2 seconds; a cached page usually less than 0.02 seconds in our system, and most time less than 0.005 seconds), otherwise raising timeout error.
FarBox will guess and estimate other pages' rendering time, if rendering lasts a long time frequently, the max acceptable rendering time will be less than 2.5 seconds.
Optimizations in Template and Pages
- Do not load too many resources (like css/js) in one page, otherwise it can lead to blocking a visitor's IP by server if the visitor refresh several times in a short time.
- In your css file, try to reduce using images.
- Try to use SASS/SCSS/LESS instead of traditional CSS.