Project

General

Profile

Design Notes » History » Version 2

Version 1 (Luke Murphey, 11/21/2015 07:57 AM) → Version 2/13 (Luke Murphey, 12/05/2015 05:54 PM)

h1. Design Notes

h2. AJAX content loading caching system

The content for the reading pages is cached in order to reduce the loading time of the chapters. This is necessary because rendering is expensive. This works by:

# Caching the current page on the server
# Pre-loading the next page so that it is pre-cached

The way that this works is that the template for the page will only return the non-content part of the page if the request is not an AJAX request. This will not be cached.

On the other hand. if the request is for an AJAX request, then only the content part of the page will be returned. This will be cached.

h2. ajaxify: what does it do?

The ajaxify decorator changes the page that will be returned such that it is a shell that will request the actual page. This is useful in order to show content to a user quickly with a progress-bar instead of showing a white screen while the content is prepared.

h2. How the type-ahead system in the search works

# The search-query uses the Bootstrap type-ahead component to invoke a call to get_works_search_typeahead_hints()
# get_works_search_typeahead_hints() obtains the type-ahead hints for Bootstrap
# On submitting the search query, jump_to_searched_text() will be used to jump directly to the matching work