I poluted several forums and Smalltalk lists in the last days with my problem, that my browser shows only the source of the page – but does not render it. I programmed a page in my demo, which automatically loads itselfs within some seconds. I added a refresh line to the header of my programmed web-page and in principle this approach worked – but not always. This happened in an Apache based configuration.
The reason (for that problem) has been found and described, but not, why it has happened. It’s because of a wrong content-type (text/plain) line in few answer telegrams delivered by Apache. I changed the default content-type configuration value within my Apache configuration to text/html and now this page-rendering problem went away.
Now the heavy stress tests are working without problems – all pages are deliverd. But now the next problem seems to happen: memory consumption.
First I thought, that my C-JSON library was the reason for this – but restarting the image does not show better numbers …. therefore no memory leak in OS-memory.
I therefore wrote a simple component just to check this reload problem. The refresh interval was set to “1″ and the pages are pretty large – but only to increase the problems of that error.
Then I checked it with VASmalltalk and Pharo (without Apache) and both Smalltalks showed increasing-only memory consumption behaviour. At 500 MByte memory consumption Pharo throwed an “Out of memory” exception. VASmalltalk was still running well at 1.2 GByte memory consumption. (Tests were running for several hours).
WAComponent subclass: #TestClass
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''!
!TestClass publicMethods !
renderContentOn: html
html text: DateAndTime now printString.
html paragraph: 'Hello World from Seaside.'.
html paragraph: [
html text: 'To learn more about Seaside components follow the link to the book: '.
html anchor
url: 'http://book.seaside.st/book/fundamentals/rendering-components';
with: 'Dynamic Web Development with Seaside'.
html text: '.' ].
1 to: 10000 do: [ :anIndex | html break. html anchor callback: [ ] ; with: 'www.heise.de' ].!
updateRoot: aHTMLRoot
super updateRoot: aHTMLRoot.
aHTMLRoot meta
responseHeaderName: 'refresh' ;
content: 1 greaseString! !
TestClass initializeAfterLoad!
I have no idea, what I did wrong and have to spend more time (which I have – due to the large productivity of Smalltalk as you might know) on this.