Website Architecture Restructure Advice
I will try and be succinct and you can ask for further information if you feel it would help.
We have designed and built a website for delivering training courses. We are continuing to add Courses and Lessons. Our design approach has been to design the Lessons in a similar way to designing a book in that each Lesson contains many 'pages' with no scrolling, of a fixed size, and the text and images carefully laid out individually with attention to the flow of the content and the use of white space. A navigation bar at the bottom allows the user to go to the next or previous 'page', jump to any of the sub-sections of the Lesson or jump to a specific 'page'.
Just to complete the picture we have developed Course html files which act as a wrapper to pull in and display collections of Lessons. The Lessons are displayed within an iFrame in the Course html file and xml files are used to determine which Lessons a Course contains.
The project has been very successful (here comes the 'but') but our client is now increasing the length of new Lessons and it is this which is forcing us to re-consider our approach. Our client has a very managed corporate intranet and all Users have IE8. When viewing a Course and clicking to view a Lesson the whole Lesson has to be downloaded just to view the first 'page' (you knew that of course!). It was slow but acceptable before, now it is becoming a real problem.
So, eventually, here is the question: how could we evolve our approach to delivering our content more efficiently, asking the server to deliver page by page rather than a whole Lesson up front?
When the project started we were told by our client hosting the website that we could not create a dynamic website accessing SQL or similar so we went static with xml data. We have more freedom now and could employ a more dynamic approach. However I would prefer not to start again as we have a huge amount of legacy content. An ideal would be to evolve our current approach but to manage the downloading better.
I look forward to hearing your thoughts.
I think that there are a range of options. E.g.:
- minimalist - Implement a block structure of up to 20 pages, with continuation blocks thereafter. Load time little better than at present.
- moderate - Implement a block size of up to 5 to 10 pages (or so). Reduces the load time, but has more impact on the creation/maintenance process.
- high - Implement a block structure as above AND a 1st block of only 1 or 2 pages (to minimize the initial load).
- higher - Restructure the pages using PHP include files for the common elements (header, footer, nav-bar etc...) then paginate the content in blocks as above. Benefits from the caching of the include files, so that all that is loaded (after the initial load) is the content.
Note: Whichever solution is chosen, it should be possible to write a PHP script the convert the existing lessons to the new structure.
Last edited by jedaisoul; 12-22-2014 at 03:38 PM.
Thanks for the reply
Could you expand a little on the use of blocks please. Does this control which elements are loaded by the browser better?
I use the term "block" to signify a collection of pages which may, or may not, represent a whole lesson. You would need to add a flag mechanism, to indicate whether a continuation block exists, and to access it. This can be done in a number of ways, but the mechanism chosen would probably need to reflect the existing mechanism by which lessons are accessed.
Last edited by jedaisoul; 12-23-2014 at 05:31 PM.
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Tags for this Thread