Data broadcasting and focus

I am dealing with a very annoying problem with my clients related to the focus on elements.
When they are writing something on a field, they lose the focus and they have to click again to regain the focus.

I think it is related to the broadcasting, but I cannot be sure.
Maybe other backgroung applications (such as antivirus, etc.) might be the cause.

I don’t really know how to manage the problem.
Making easy solutions on Servoy does not reproduce the problem.
I am trying to understand in detail the broadcasting mechanism to check it out.

I have two questions:
1.) How can I know the data a client has loaded?
I know that on the Servoy admin I can see the user’s tables in use. But… is there a way to find out exactly what a client has loaded?
I am interested on this to make sure that a client only receives the broadcasts that it should receive. Maybe we are loading to much information on a client and that is the reason why it receives too many broadcasts…

2.) Is there a way to check the clients the Servoy server is broadcasting?
I know we can use the onBroadcast event, but that is only the client side. I would like to monitor the server side, if possible.

Thanks in advance,
Miguel.-

maservoy:
1.) How can I know the data a client has loaded?
I know that on the Servoy admin I can see the user’s tables in use. But… is there a way to find out exactly what a client has loaded?
I am interested on this to make sure that a client only receives the broadcasts that it should receive. Maybe we are loading to much information on a client and that is the reason why it receives too many broadcasts…

on a client you don’t know that,
But yes clients will get databroad cast events of the tables that it uses (did touch)
So insert/deletes and all will be fired to that client, the server will not check on pk or something to check if the client needs it, at the moment a client touches a table it will get all events on that table.

maservoy:
2.) Is there a way to check the clients the Servoy server is broadcasting?
I know we can use the onBroadcast event, but that is only the client side. I would like to monitor the server side, if possible.

No, but it is to all the clients that did touch the table where the insert/update/delete happened on

Great, Johan, thanks for the answer.
Three new questions:

1.Is there a way to avoid broadcasting? At least, on certain tables…
What I would like to do: customize broadcasting to reduce it to the minimum possible.
Why? because on our applications certain tables need broadcasting, others do not.

I know I can use the servoy.disableDataChangeNotify option, but this would disable completely the broadcasting.
I am trying to customize this feature.

2.Is there a way to track broadcasting?
I would like to track those broadcastings that could not be done by any kind of reason: lost connecttion, error in communication, etc.

3.Could broadcasting be responsible for some clients losing focus on the application?
I am afraid so, but I haven’t been able to create a demo app for you folks at Servoy…
Where would you check on your application if you had a problem losing focus? Which things should be taken care of on the application programming?

Thanks in advance…

maservoy:
3.Could broadcasting be responsible for some clients losing focus on the application?
I am afraid so, but I haven’t been able to create a demo app for you folks at Servoy…
Where would you check on your application if you had a problem losing focus? Which things should be taken care of on the application programming?

Yes it can, it happend to me with a form that had a tab panel showing related data. The related data would be updated in bursts of 20/30 record at once every couple of minutes, each time that happend the client would lose focus in the selected field.

Check this thread: viewtopic.php?f=8&t=14665#p78104

We are getting reports of this problem as well on Mac OS and Windows with Servoy 5.2.x.

Is there a guideline to follow?
Moving to Servoy 6 would solve the problem, or that is something we don’t really know?

How about moving back to Servoy 5.1.2?
We are currently using 5.2.0

You know how users are, specially when we are talking about health care.
We are really getting into a quite disgusting situation and we need to move forward.
Any idea will be more than appreciated.

Thanks in advance.

In my case I ended up moving a form that wasn’t backed by a table and using form variables that I set manually with the data I wanted. Ended up being more error prone in the beginning as there was a lot more to manage programmatically now, but (in this one use case) the UI / experience became much more responsive to the user.

why would moving to 5.1 help?
there is not much change between 5.1 and 5.2 except quite a lot of bug fixes
In 6 there are even more fixes and also i believe that 6.0.2 will even have more fixes relation some selection/focus stuff for the web.
But all this is a bit guessing because we don’t really know what the actual problem is here.

Right Johan, thanks.
The real problem is that we don´t really know what is going on.

Where do you think we should take a look at in first place?
in your opinion, what are the things we should check?

you could log as much info as possible in a onbroadcast method
Like timestamp and datasource/data/pk what is being send to the client
Then when a client looses focus you could see what did get broadcasted at the same time…

We have succeeded in reproducing the case.
Thanks folks for your ideas,

Cases #426173 & #426190