# Event driven expression bindings

**URL:** <https://forum.inductiveautomation.com/t/event-driven-expression-bindings/38757>\
**Category:** Ignition\
**Tags:** ignition80, vision\
**Created:** [September 16, 2020, 5:35pm UTC](https://forum.inductiveautomation.com/t/event-driven-expression-bindings/38757 "2020-09-16T17:35:26Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![zacht](https://avatars.discourse-cdn.com/v4/letter/z/ea5d25/32.png) [@zacht](https://forum.inductiveautomation.com/u/zacht)\
**Post date:** [September 16, 2020, 5:35pm UTC](https://forum.inductiveautomation.com/t/event-driven-expression-bindings/38757/1 "2020-09-16T17:35:26Z")

</div>

My understanding, [based on the user manual](https://docs.inductiveautomation.com/display/DOC80/Expression+Binding+in+Vision#ExpressionBindinginVision-EventBasedandPolling), is that expression bindings execute in an event driven way provided there are no polling functions (runScript(), now(), etc.)

My question is in regard to the logic functions. When a value that isn’t relevant to the final answer, does it cause the binding to refresh on every change anyway? In the example below, does the binding refresh every second as flasherTag changes even though the output answer won’t change?

```auto
if(
    1, // If statement is always True
    1, // This value should always return
    {flasherTag} //on one second, off one second
)

```

A different example.

```auto
case(1,
1, 1,
2, {flasherTag},
3, {someOtherThrowAwayTag},
{fallBackTag}
)

```

---

<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:** [September 16, 2020, 5:58pm UTC](https://forum.inductiveautomation.com/t/event-driven-expression-bindings/38757/2 "2020-09-16T17:58:00Z")

</div>

Yes. There’s no ‘short-circuit’ evaluation in expressions - the `{flasherTag}` in your first example will always be evaluated, and is monitored for changes, which triggers the expression’s evaluation.
