on 09-26-2007 9:11 AM
Hello,
I have a screen in which I have two frames.
Frame two is refreshed every minute and during that process the whole screen freezes.
I am able to refresh the second frame every minute but I don't want the other frame to be frozen during that process as first frame is data entry screen.
Regards
Raman
What are you trying to do? How many applets or code do you have for each frame, etc?
Details is what can help us help you...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
>Throughout my application I have two frames in all my screens.
>First frame contains user entry screens,applet,grids as per the requirement.
>Second Frame has a grid to show current alarms.
>Every 30 secs second frame gets refreshed to show current alarms.
>I am using frame refresh for an interval of 30 secs.
> I cannot use the applet refresh, as I am setting the values of current alarms using Java Script Code.
>Everytime second frame refreshes first frame also freezes.
> I want to avoid this, as the user entry screens also freezes as soon as second frame refreshes.
This seems more like a browser problem. How much memory do you have allocated to ServeletExec? Is the hardware robust enough to handle this type of install?
Are you also changing the alarms every time you refresh the second frame?
Did you ever consider just setting up ONE page with an iFrame in it rather than multiple frames? This tends to get rendered much easier. You would then be able to pass the alarms dynamically to the IRPT page which would be your alarms.
Also: "First frame contains user entry screens,applet,grids as per the requirement.
" does not mean anything to me as I do NOT know the requirements. Which is why i asked for details. I'm trying to understand your process flow so that maybe i can recommed something different or an aternative.
As in what does Frame ONE pass to Frame Two.....what happens event-wise, etc...
>Yes we are changing the alarms every time we refresh the second frame.
>First and second frame are independent.
> In our case we need current alarm(second frame) to be refreshed every 30 secs.
>In all our screens we have two frames.Second frame always shows the current alarms.(which get refreshed every 30 secs)
>First fame have Charts,User entry screens etc as per the requirements.
>Whenever second frame refreshes it call a BLS transaction,in turn we interpolate some data and then alarm count is set using the javascript code.
>When this happens it freezes the whole application for couple of seconds.
>Our intention to put the screens in two frame was to make them indepent , such that user can work on the screen even when the second frame refreshes.
Raman
If possible, u may make the refresh of the second frame & the call of BLS in independent ways (in ur current situation, both runs in subsequent way that is first refresh, then it calls BLS which leads the screen to get freezing).
Since 2nd frame is showing current alarms every 30 seconds on refresh. So u can call the BLS using <b>Scheduler</b> setting the time interval as 30 secs.
Tell me if this works easily or not
Regards
Som
Yes, you can use applet refresh...applet refresh (or update) does not change the context of the applet or the underlying query, so it should work fine. You can always use a timer in your HTML and call any appropriate applet method(s) if the built-in applet refresh does not meet your needs, thus avoiding the need to reload the entire page.
"When this happens it freezes the whole application for couple of seconds."
So from the above line, i assume the frame comes back after a few seconds and is fine???
If this is the case, then it seems to be a response issue from your BLS transaction. How big is it? What kind of logic are you executing? Is R/3 involved?
Yes Alin, frame comes back after few seconds and is fine.
>Only problem is in the first frame we have user entry screen, visualization screens, where operator selects some parameters like machine, start date and end date etc. and when the second frame refreshes first fame also freezes for few seconds.This irritates the user.
>Yes in our case response issue is because of BLS transaction..We are calling two BLS transaction everytime.
it just seems like a response issue. you just have to clean out the BLS as much as possible and make it run efficiently.
have you tried running the transaction from within BLS .....when you press F6 to run it, at the end it will give you a time that it took to execute. Try to get that down as much as possible to get the best response.
What systems are you calling/accessing when executing those two TRXs......what are they accomplishing? Their process?
BLS transaction are accessing the data from iHistorian on the fly.
First transaction returns tag values which are multiple of two i.e. 1,2,4,8,16 etc
These individual values are alarms with a description.If first transactions output has three rows with values 2,16,128 ...this mean 3 alarms.
Second transaction returns values which are not multiple of 2's. For ex. 29(16841..so 29 means 4 alarms) these tag values are combination of multiple of 2's like 641 is combination of 512128+1.
After getting the no. of alrams from both the transaction we aggregate the current alarms as per the machines and display them in the labels in second frame.
Its very complex as customer tags values are multiple of 2's or combination of them.So we need to convert them and display the corresponding alarms and their description.
Query to the iHistorian is very fast and all my other queries are also fast.
Only problem I have is that my first frame freezes for couple of seconds when the second frame refreshes at an interval of 30 seconds.
I want the second frame to work independent of first frame so that user can still work on the first frame even when the second frame refreshes.
Sorry Som, as I missed out in replying to your earlier post.
In this case I can schedule First transaction which gives alarm value in multiple of 2's.
But the second transaction gives values which are combination of multiples of 2's.
These values need to be converted and segregated using javascript code so that we can have count of current alarm with description.
Thats why second transaction cannot be scheduled.
Warm Regards
Raman
Raman
Well
<i>These values need to be converted and segregated using javascript code so that we can have count of current alarm with description</i> - pls can u give a sample of this with javascript codes what u r using.
I think in BLS u should b able to do the whole processing (Values -> conversion -> separation -> count etc etc) with the help of built-in functions in Logic Editor
Regards
Som
I agree with Som. I would avoid putting any of this type of business/calculation logic in the client application. It belongs best in the "middle tier", between the data and the UI. Your BLS transaction can persist the alarm status information into a database, as XML, or "in memory" using the simulator server.
One thing that sucks is that the scheduler can only do intervals of one minute, so you can't combine it with the scheduler to optimize performance. What you can do is combine it with query caching (perhaps set at 15 seconds) to optimize performance. This way, if 100 people ask for the same query (alarm status), it will only access the back-end data source once each 15 seconds.
Rick
User | Count |
---|---|
3 | |
3 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.