# Window load order

**URL:** <https://forum.inductiveautomation.com/t/window-load-order/91310>\
**Category:** Ignition\
**Tags:** vision\
**Created:** [June 3, 2024, 8:06pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310 "2024-06-03T20:06:54Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![leversole](https://avatars.discourse-cdn.com/v4/letter/l/db5fbb/32.png) [@leversole](https://forum.inductiveautomation.com/u/leversole)\
**Post date:** [June 3, 2024, 8:06pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/1 "2024-06-03T20:06:54Z")

</div>

I have a top (of screen) window, a center window and a bottom (of screen) window...the center windows swap in and out with the top and bottom remaining throughout the app.  
All of the center screens write to a property on the bottom screen.  
The center screen[s] always seem to load (on a program update or login)  
and gives an error that the bottom screen is not loaded.  
I put the openwindow() for the bottom screen in the application script, this fixed the startup error, but now when I login a different user, the error comes back. It is like the login resets all of the windows and loads the center window first.  
Any thoughts of a work around? I would like to specify that the bottom window always loads first. On a startup or user login.

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [June 3, 2024, 8:28pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/2 "2024-06-03T20:28:50Z")

</div>

Use Vision Client tags instead of attempting to access other windows.

---

<div class="post-metadata">

**Author:** ![leversole](https://avatars.discourse-cdn.com/v4/letter/l/db5fbb/32.png) [@leversole](https://forum.inductiveautomation.com/u/leversole)\
**Post date:** [June 3, 2024, 8:47pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/3 "2024-06-03T20:47:17Z")

</div>

Unfortunately, our Ignition servers have no internet access nor any project templates...

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [June 3, 2024, 8:49pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/4 "2024-06-03T20:49:46Z")

</div>

I think you are missing some understanding. See

> **[Vision Client Tags | Ignition User Manual](https://docs.inductiveautomation.com/docs/8.1/ignition-modules/vision/vision-client-tags)**
>
> Client Tags, as the name implies, are only available for use in Vision Clients. Their values are isolated to a Client runtime. All clients will have the same list of client Tags, however, the actual values are unique and independent for each running...

---

<div class="post-metadata">

**Author:** ![leversole](https://avatars.discourse-cdn.com/v4/letter/l/db5fbb/32.png) [@leversole](https://forum.inductiveautomation.com/u/leversole)\
**Post date:** [June 3, 2024, 8:50pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/5 "2024-06-03T20:50:03Z")

</div>

To be more specific, I am setting button attributes on the bottom window to simulate a navigation bar. I am setting these from the center window as they are different for every center window. Just trying to ensure the bottom window opens first...

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [June 3, 2024, 9:15pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/6 "2024-06-03T21:15:04Z")

</div>

Right. You have an XY problem:  
The thing you want is to allow all of your windows to access some shared mutable state. (Y)  
The solution you're looking for is manipulating window load order. (X).

But it's _not possible_ to do X (which, in fairness, no one has explicitly told you). It _is_ possible to do Y...and the easiest way to do Y is with Vision client tags.

As Transistor linked above - client tags are a special tag provider that allows you to define a tag structure in the designer, which each running client then gets an independent copy of. So Client A can manipulate its own tags and will not interfere with B, C, D, etc.

---

<div class="post-metadata">

**Author:** ![leversole](https://avatars.discourse-cdn.com/v4/letter/l/db5fbb/32.png) [@leversole](https://forum.inductiveautomation.com/u/leversole)\
**Post date:** [June 3, 2024, 11:17pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/7 "2024-06-03T23:17:55Z")

</div>

I thought I needed some add in template for vision client tags. Learning about them now....  
Thanks  
Leslie

---

<div class="post-metadata">

**Author:** ![Transistor](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/transistor/32/3380_2.png) [@Transistor](https://forum.inductiveautomation.com/u/Transistor)\
**Post date:** [June 3, 2024, 11:25pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/8 "2024-06-03T23:25:28Z")

</div>

Think of Vision Client Tags as being like variables of global scope within your instance of the client. All windows can access them. It won't affect anyone else running the same application.

---

<div class="post-metadata">

**Author:** ![Francisco.Mejia](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/francisco.mejia/32/63246_2.png) [@Francisco.Mejia](https://forum.inductiveautomation.com/u/Francisco.Mejia)\
**Post date:** [June 4, 2024, 11:50am UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/9 "2024-06-04T11:50:26Z")

</div>

Can you create a script during the vision session start. You can use tags to keep the current state of the menu if you need to reload the window.  
I haven't tried this.

---

<div class="post-metadata">

**Author:** ![Francisco.Mejia](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/francisco.mejia/32/63246_2.png) [@Francisco.Mejia](https://forum.inductiveautomation.com/u/Francisco.Mejia)\
**Post date:** [June 4, 2024, 12:43pm UTC](https://forum.inductiveautomation.com/t/window-load-order/91310/10 "2024-06-04T12:43:21Z")

</div>

I just tried this.  
set the windows not to load during the vision client Startup event.

Open the bottom window  
set bottom window attributes  
Open the main window
