Michael Van Canneyt escreveu:


On Fri, 30 Jul 2010, Luiz Americo Pereira Camara wrote:

Hi,

I've playing a bit with fpWeb and have some suggestions and questions:

- In TFPWebAction.DoHandleRequest if request is not handled by OnRequest and inherited, the content is copied to the response and handled is checked by the response content.
- FContensts will be always created even if is not created previously
- At this point AResponse.Contents can have some content?
- If so the handled checking is wrong. See these conditions
   AResponse.Contents.Text <> '';
   Self.Contents.Text = '';
   Handled will be true. Should be false.

Why ? It is handled ?

No. Because TWebAction.Contents is empty.

- Content and Contents properties are redundant. Also can lead to some performance issues. See the code of DoGetContent:

  If (Self.Content<>'') then
    Content.Write(Self.Content[1],Length(Self.Content));

Content is computed (Contents items concatenated) three times.

Don't be surprised if users do things like

while  not ready do
Content := Content + 'xxx';

I agree that the contents/content properties should be reduced to 1
property. But this is a change which will break backwards compatibility.

AFAIK the fpWeb interface is still in progress. Anyway, better change now than later.


- TFPWebAction.GetContent is empty. It seems that should call TFPWebAction.DoGetContent. DoGetContent is inneficient. Cached FContents.Text and and isolated string references

Suggestions for improvements are welcome.

See patch below (in previous mail)



- In TCustomFPWebModule.HandleRequest assigned(Session) will always evaluate to true (if Session is nil it will be created and then freed again).

I will look into this.


- It's not necessary to check for nil in SetTemplate
- In the other side a check to nil should be added in SetContents to avoid creating FContents

- CGI apps enters in a infinite loop.
Adding

if FWebHandler.FTerminated then
  Terminate;

to TCustomWebApplication.DoRun fixes it.

This is not sufficient, but I have committed a fix in revision 15698.
Please test it.

OK. BTW what's the intention of adding TWebHandler AFAIK only add another layer.


Follows patch with my suggestions.

Can you please create bug reports for the remaining issues ?

Done

Luiz
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to