Идеята ми за timeout-а не е точно такава. Така, ако направя 1000 keystroke-а, пак ще се изпълнят 1000 ajax call-а, просто със закъснение от 1 секунда. Имах предвид:

1. На всеки keystroke правиш `setTimeout()`
2. Като ако е имало вече timer, му викаш `clearTimeout()` предварително

Ефективно, ако пиша със време под една секунда между буквите, ще канселирам timeout-ите, докато не се спра за малко (повече от 1 сек), когато ще видя preview-то си.

Друг начин, който ми идва наум сега е, да правиш по една заявка на секунда (приблизително), _докато човек пише_. Пак заигравка с таймери. Как си го представям?

1. Човек започва да пише. `input` се тригерира. Ако това е първото такова събитие, пускаш setTimeout(1 сек).
2. На следващи input-и не правиш нищо, ако вече има активен timeout.
3. Като изтече времето, проверяваш текущия текст с текста, запазен при последното рендериране на preview. Ако се различават, пускаш заявка за ново preview и запазваш текущия текст като "текст на последното preview".
4. **Като се върне отговор** от сървъра, пускаш нов `timeout`.

Нещо такова.