Мне нужно проверить, печатает ли пользователь или нет, прежде чем я отправлю запрос ajax, чтобы мой сервер не забивался при каждом ударе, может кто-нибудь подсказать мне, как это сделать?
Что вы ищете, это debouncing / throttling . Underscore.js имеет полезные функции для него.
Underscore.js
$('#field').on('keyup change', _.debounce(function() { // your ajax call }), 2000);
Этот код будет ждать 2 с после последнего изменения, прежде чем запускать вашу функцию.