[Seaside] size limit with onInput: and jQuery callback:value:

Johan Brichau johan at inceptive.be
Sun Mar 13 09:02:15 UTC 2016


Hi Bob,

Have you tried setting the ajax request to type POST instead of the (standard) GET?

		onInput: (
			html jQuery ajax 
				type: ‘POST’;
				callback: [:stringValue | self enteredText: stringValue]
				value: html jQuery this value);

Web servers (and proxies) often set a maximum url length. Since a GET request encodes both the Seaside callback number and the entered text into the url, it will most probably be truncated by the web server.
In most cases I observed, it was only the entered text that was truncated, but depending on the position of the parameters, it may also truncate the Seaside callback number. As a result, the callback will not be invoked.

I did not try your example, so if this is not the case, ping me back and I will take a closer look.

Also: I often ask myself why people copy/paste entire documents in textareas :))

Hope it helps
Johan

> On 12 Mar 2016, at 16:03, bobn at rogers.com wrote:
> 
> Hello,
> We're seeing a problem where entering large text into a textArea causes the component to no longer be responsive. In our case, using VW 7.10.1, the problem only happens if we're using a reverse proxy (either HA Proxy or Apache). To debug the problem, I set up a development VW image running Seaside on port 7771 and HA Proxy on another server, redirecting port 80 to 7771. I then connected two sessions: one directly to the Seaside image, and one by way of the HA Proxy server. The directly connected session works fine, no limit on entered text that I can see. HA Proxy session has problems if the text entered is around 3500 (the exact number varies). 
> 
> Cincom suggested putting a break into SiouX.NetHttpResponder>>createRequestFrom: which shows that jQuery callback from onInput is not being sent.
> 
> So, to isolate the problem (and get some help on this forum), I coded an example in a new Pharo 4.0 image, with Seaside 3.1. This example, however, has the same symptom as my VW + HA Proxy configuration: once the entered text is past around 3500, the onInput ajax callback no longer responds. I'm hoping someone can shed some light on this problem... I have some unhappy users. 
> 
> renderContentOn: html
> 
> 	html heading: 'Text Editor'.
> 	html textArea
> 		style: 'width: 820px; height: 200px; '; 
> 		value: self enteredText;
> 		onInput: (
> 			html jQuery ajax 
> 				callback: [:stringValue | self enteredText: stringValue]
> 				value: html jQuery this value);
> 		onBlur: (
> 			(html jQuery id: 'displayedText') load html: [:renderer | 
> 				self renderEnteredTextOn: renderer]).
> 	html horizontalRule.
> 	self renderEnteredTextOn: html.
> 
> 
> renderEnteredTextOn: html
> 
> 	html div id: 'displayedText'; with: [ 
> 		html big: 'size: ', self enteredText size printString; break.
> 		html text: self enteredText]
> 
> 
> Thanks, 
> 
> Bob Nemec
> HTS
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/seaside/attachments/20160313/9a836149/attachment.htm


More information about the seaside mailing list