Я хочу сделать что-то вроде

Это скриншот транслитератора Google, который можно найти здесь .В этом приложении пользователь пишет на латинице, и когда он / она нажимает пробел, ajax-запрос отправляется на сервер, возвращая список слов.Затем римское слово заменяется словом top в списке результатов (в моем случае список результатов на языке урду).Теперь, когда я продолжаю печатать, и через некоторое время я возвращаюсь и вижу, что слово не такое, как я намеревался написать.
Я нажимаю на это слово, и открывается контекстное меню, как показано на рисунке, но важноДело в том, что на этот раз ни один ajax-запрос не отправляется на сервер, а Google выбирает результат, который хранится в клиентской области (браузере).Мой вопрос заключается в том, как я могу кэшировать результат ajax на стороне клиента, и во-вторых, как я могу связать каждый результат с каждым словом в текстовой области или в расширенном текстовом поле, используя контекстное меню или подобный интерфейс.аналогичный функционал в asp.net mvc2.