El activador asíncrono para un panel de actualización actualiza la página completa cuando se activa demasiado en muy poco tiempo

Tengo un botón de búsqueda vinculado a un panel de actualización como un desencadenante como este:

<asp:Panel ID="CRM_Search" runat="server">
    <p>Search:&nbsp;<asp:TextBox ID="CRM_Search_Box" CssClass="CRM_Search_Box" runat="server"></asp:TextBox>
    <asp:Button ID="CRM_Search_Button" CssClass="CRM_Search_Button" runat="server" Text="Search" OnClick="SearchLeads" /></p>
</asp:Panel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="CRM_Search_Button" />
    </Triggers>
    <ContentTemplate> 
     /* Content Here */
    </ContentTemplate>
</asp:UpdatePanel>

En mi javascript, uso jQuery para tomar el cuadro de búsqueda y vincular su keyup para hacer clic en el botón de búsqueda:

    $($(".CRM_Search_Box")[0]).keyup(
        function () {
            $($(".CRM_Search_Button")[0]).click();
        }
    );

Esto funciona perfectamente, excepto cuando empiezo a escribir demasiado rápido. Tan pronto como escribo demasiado rápido (supongo que si es más rápido de lo que realmente devuelven los datos) se actualiza toda la página (¿haciendo una devolución de datos?) En lugar de solo el panel de actualización.

También descubrí que en lugar de escribir, si solo hago clic en el botón realmente rápido, comienza a hacer lo mismo.

¿Hay alguna manera de evitar que haga esto? ¿Posiblemente evitar las segundas solicitudes hasta que se complete la primera? Si no estoy en el camino correcto, ¿alguien tiene alguna otra idea?

Gracias,
Mate

Respuestas a la pregunta(1)

Su respuesta a la pregunta