This is a really interesting question, I'm looking forward to hearing other people's thoughts as well.

Some thoughts:

A) To speed up initial page load, uncheck "Load Model data on page load" in your model properties whenever possible. Then you can use theQuery Model action to load the data when you need it (e.g. as a tab action, or when you're opening a drawer or popup). For more on improving performance see 5 Ways to Make Your Skuid Pages Lightning Fast and the Skuid Page Performance Guide.

B) Make sure after your Activate & Set value of model condition action, you have a Query Model action, this is the action that actually refreshes the model data. Use the query type that best fits your use case - you can either completely requery the model (this refreshes it wherever it's found), or "get more" which will just add more records to the ones already in the model (use this one, for example, when opening table drawers, to keep the records in other drawers from disappearing).

Considerations for Reusing Models

When reusing models, be careful to keep in mind other places it's being used and how it's being used. For example, you can use the same model (for example, a Task model) to create a new task in one popup, and to show task details in another. But you have to remember that users may be coming to each of these actions from the other, and make sure the model gets reset appropriately (the Remove all rows from modeland Deactivate model condition actions are helpful here).

Example: if you want to see all bank statements in one tab, and this month's bank statements in another tab, you can use the same model, but make sure that when the "all statements" tab is selected it deactivates the "this month" condition on the model and then completely re-queries the model.

Dave, I haven't tried the tab actions, but I think they're prefect for your use case. On click of your tab (or button, if you want to use popups) you need to:

Disable the other conditions from other tabs

Activate or Activate & Set the condition(s) for the current tab.

Query the model

(and if you're using popups, show popup)

That first part is going to be the trick... since you're reusing the model, you have to make sure you have some way to deactivate the conditions that you're not using. Since there isn't a canned action for "when the popup closes" or "when you exit the tab" (unless you're into javascript), deactivating the others before entering the new tab seems like the way to go.