|
|
 |
 |
 |
manilaSuite.staticRendering.renderPage
Static rendering a number of pages can be extremely CPU intensive and can severely impact a servers responsiveness. This patch yields after each page is rendered for a time equal to the time taken to render the page.
Amended Script
| on renderPage (relativePath, adrManilaSite, adrStaticSite=nil) |
| |
«Render one page to a static server. relativePath is the path to the page relative to the site, as in /2000/03/10 or /resources/linux/programming. Returns a copy of the page table. |
| |
relativePath = string.popLeading (relativePath, '/') //the leading / is optional |
| |
on setUpPageTable (adrTable, relPath) |
| |
setUpPageTable (@pt, relativePath) |
| |
local (flHomePage = false) |
| |
local (flCalendarPage = false) |
| |
local (flSiteStructurePage = false) |
| |
local (adrsubtable = log.addToGuestDatabase ("StaticRender", flHourlyRoll:true)) «06/08/07, 14:03:19 by DAB |
| |
adrsubtable^.site = nameOf(adrManilaSite^) «06/08/07, 14:08:48 by DAB |
| |
adrsubtable^.relativePath = relativePath «06/08/07, 14:08:53 by DAB |
| |
adrsubtable^.ticks = clock.ticks() «06/08/07, 14:06:35 by DAB |
| |
try «placed in a try 8/7/06, 2:13:58 PM by DAB |
| |
bundle //handle rendering a home page |
| |
if relativePath == "" or relativePath == "default" //it's the home page |
| |
manilaSuite.staticRendering.renderHomePage () |
| |
bundle //also render the most recent calendar page |
| |
local (adrDay = mainResponder.calendar.getMostRecentAddress (adrManilaSite)) |
| |
local (adrMonth = parentOf (adrDay^)) |
| |
month = nameOf (adrMonth^) |
| |
local (adrYear = parentOf (adrMonth^)) |
| |
local (archiveRelativePath = year + "/" + month + "/" + day) |
| |
setUpPageTable (@t, archiveRelativePath) |
| |
manilaSuite.staticRendering.renderCalendarPage () |
| |
html.setPageTableAddress (oldPta) |
| |
bundle //also render the RSS file |
| |
if manilaSuite.getNewsSitePref ("flSyndicate", adrManilaSite, true) |
| |
setUpPageTable (@t, "xml/rss.xml") |
| |
manilaSuite.staticRendering.renderBuiltinPage ("xml/rss.xml", adrManilaSite) |
| |
html.setPageTableAddress (oldPta) |
| |
bundle //handle rendering a calendar page |
| |
local (firstPart = string.nthField (relativePath, '/', 1)) |
| |
manilaSuite.staticRendering.renderCalendarPage () |
| |
bundle //handle rendering a site structure page |
| |
if not flHomePage and not flCalendarPage |
| |
manilaSuite.staticRendering.renderHierarchyPage () |
| |
bundle //delete the page table address |
| |
try {html.deletePageTableAddress ()} |
| |
adrsubtable^.normalTermination = true «06/08/07, 14:08:36 by DAB |
| |
adrsubtable^.ticks = clock.ticks() - adrsubtable^.ticks «06/08/07, 14:06:35 by DAB |
| |
bundle //end the current rendering session -- if this is a single page session |
| |
manilaSuite.staticRendering.endSinglePageSession (adrManilaSite) |
| |
adrsubtable^.ticks = clock.ticks() - adrsubtable^.ticks «06/08/07, 14:06:35 by DAB |
| |
if err == "!" and pt.code == "302" //accesscontrol checks blew us away |
| |
adrsubtable^.error =err «06/08/07, 14:08:40 by DAB |
| |
adrsubtable^.pageTable = pt «06/08/07, 14:08:40 by DAB |
| |
html.deletePageTableAddress () |
| |
try //end the current rendering session -- if this is a single page session |
| |
return (pt) //return a copy of the page table |
| |
manilaSuite.staticRendering.renderPage ("", @jaketest2ManilaWebsite) |
Relative to Frontier version 9.7b10
|