Feature Requests to Improve Web Apps

Most of My Top Cases in Feedback are feature requests to improve Web Apps and their development. If any of these will help you, please consider adding your suggestions and some points to them.

<https://xojo.com/issue/36865> Implement AutoDisable for WebToolbarButton and WebToolbarMenu
<https://xojo.com/issue/37892> WebApplication - Pause/Resume Accepting Connections
<https://xojo.com/issue/35255> Allow the SSL port to be specified in the IDE
<https://xojo.com/issue/37045> Implement AutoComplete for Session in Web Apps

If you have feature requests to improve Web Apps and want to promote them, please consider adding them to this conversation. Chances are that others may benefit from your suggestions but are not aware of the related Feedback cases.

Happy coding! :slight_smile:

For me, the server side is very important because we are dependent. Client side, if necessary, we can do differently: webSdk, librairies, handleUrl …

So I think it is important to review the operation of sockets and the communication with the browser, in order to increase capacity and reliability: websockets / http1.1 / http2, cache requests, increase the capacity and reliability of serverSocket , be perfectly compatible with the reverse proxy and load balancing (and documenting).

With handleUrl and specialHandleUrl we can do many things now with Xojo. But with these events, the handling of the database is not easy (unless you open and close the database on every request, which is expensive). It would take an object that works much like the session.

(https://xojo.com/issue/10311)>]<https://xojo.com/issue/10311> HTTP 1.1 minimum…
(https://xojo.com/issue/34976)>]<https://xojo.com/issue/34976> The web app must not close if the server is unavailable
(https://xojo.com/issue/23891)>]<https://xojo.com/issue/23891> Reverse proxy, load balancing.
(https://xojo.com/issue/34272)>]<https://xojo.com/issue/34272> SSL reverse proxy: Consider the “X-Forwarded-Proto” header to accept the external libraries (maybe it was implemented)

[quote=170425:@olivier vidal]
(https://xojo.com/issue/34272)>]<https://xojo.com/issue/34272> SSL reverse proxy: Consider the “X-Forwarded-Proto” header to accept the external libraries (maybe it was implemented)[/quote]

Maybe I’m misunderstanding something but I’m just using Session.Header(“X-Forwarded-For”) and Session.Header(“X-Forwarded-Proto”) to get those values when behind a proxy.

<https://xojo.com/issue/23571> WebMenuItem Support For Picture Icons, Parent Selection, and Longer Lists
<https://xojo.com/issue/18068> Single file version of WebFileUploader (No built-in/required interface)

But honestly before they get around to adding new features I would love to see them fix all the broken things for WebApps. WebDialogs are a nightmare with sizing, resizing, embedding etc… there’s a handful of bugs related to various issues with this.

I must admit, built in load balancing would be the most amazing thing to happen. There’s currently too much overhead in this.

There is also this feedback now:

(https://xojo.com/issue/38227)>]<https://xojo.com/issue/38227> support for http/2 in stand-alone web apps

  • HTTP1.1 was documented there are more than 15 years. It significantly improves the protocol, it is a big update.
  • Xojo use 1.0.
  • A Feedback for http1.1 in Xojo was submitted in 2009.
  • Since 2012, the Feedback indicates “scheduled”
  • Meanwhile, websocket appeared. And now http2.

I have no obsession for http1.1, http2 or websocket, but these are big updates.

Another thing: I think I remember that with the new compiler, the Xojo applications will be significantly faster? it would be an asset to the WE server. Do not forget that the load balancing is effective but has a cost.

Are there any feedback cases to add large file downloads?

Using WebFileUploader? If so, my understanding is that there is no size limit for Stand Alone Web Apps and that CGI Web Apps are limited by the Web Server (Apache, etc.) being used.

Here’s another one on my wish list.

<https://xojo.com/issue/38386> WebFileUploader needs a way to filter files during selection

I meant for downloading from the web app to the browser. Downloading small files works great, but not multi gig files.

Haven’t run into that issue yet so I’ve not looked for or created a relevant Feedback case. Perhaps you should and promote it here for others interested in signing on and maybe even throwing some points at it.

There will need to be fundamental changes in how our sockets work to give you this. As it is right now, even if we load the file in little chunks, we can write them to the socket’s buffer way faster than the socket can send them out. This means that your app must have access to enough memory to store the entire file in memory at the same time. Now technically, 64-bit will raise that threshold, but you’re still limited by physical ram on the server where your app is running… And before you say Virtual Memory, remember that we just read the file from disk. Using enough memory that things start getting paged to disk just makes everything slower.

My suggestion is still to serve large files using Apache, IIS or some other web server. If the content is static, put it on a CDN somewhere.

That’s bummer. Maybe I could split up the file with zip or rar, send the pieces, then reconstitute it. Ugh…

(https://xojo.com/issue/40279)>]<https://xojo.com/issue/40279> Seven requests could be avoided at the launch of the web app

[quote]I see that there are 7 requests could be avoided at startup:

  • framework.js
  • pagestop.png
  • appicon.png
  • dimmer.png
  • pointer.png
  • loadprogress.png
  • style.css
    [/quote]

AFAIK Framework.js and Style.css are necessary for the app’s UI.

Yes, but if they are already in the browser cache, should be avoided to send requests. This is what I propose in this Feedback by changing the way of naming the files and changing the method of cache. Like this, as there is no update, the browser does not send these requests to each launch. The files are cached, there is no validation request (cache-control: max-age=15552000), and we can still update the files without problems by updating the name.

So here’s the thing. What we do right now is we set the modification date of the framework.js and styles.css file to match the app itself. This is because if you build a new version of the app and youve added a Control that you hadn’t used before, these two files are now different than they were before. The browsers still request the file, but we check the modification date and respond with a Not Modified when it’s appropriate. We respond the same way for all of the rest of the files you listed there as well.

This seems like a pretty basic problem for a web server. Please fix this one. It’s my top request.
<https://xojo.com/issue/37770>

Also fixing the SSL bug that I reported ages ago would be nice. I still have software I’m not updating/releasing because of this one.
<https://xojo.com/issue/31800>

Those are my top two for now.

Yes, it is good already. But there are still 7 requests that are sent, and the response is expected. Even if they only return a 304 response, mobiles are little of simultaneous requests and the mobile network is not always responsive. Meanwhile, we could send other requests to load our js libraries, web font files, etc.