Hmm this is tricky. The widget framework is designed to re-render following any input, be it clicking or pressing a key. In general re-rendering widgets is fast, so the thought was you should be able to re-render as fast as the user is typing.
Are your renders slow? You can output how many ms are being taken by adding profileWidget: true to its definition.