с таким подходом будут определенные проблемы.
если у вас есть только один экземпляр, обрабатывающий все запросы, то вам нужно убедиться, что во время выполнения запроса нет ничего, что могло бы перезапустить его с новыми параметрами в качестве его асинхронного. Кроме того, события будут складываться. каждый новый экземпляр, который вы запускаете, будет добавлять событие onComplete / onSuccess / onFailure, и они не всегда будут релевантными. поэтому перед каждым запуском необходимо применять removeEvents () к экземпляру запроса.
посмотрите здесь http://www.jsfiddle.net/dimitar/8a7LG/4/
Я не показываю это как пример того, как я написал бы это, но чтобы видеть проблемы, которые идут с этим. сначала нажмите на вторую ссылку, затем на первую (jsfiddle добавляет 2-секундную задержку в сети), и вы увидите предупреждение от события onComplete второй ссылки, также наложенного на первую. Более того, при каждом нажатии на ссылку 2 вы увидите новое предупреждение в дополнение к старым.
Вы также должны подумать о том, насколько уместно расширять Request.JSON, но все зависит от ваших потребностей.
p.s. если вы перейдете к Request.JSONP, структура такого типа может сыграть несколько хитростей, в частности, с сбросом функций обратного вызова и т. д.
удачи:)
edit вот что работает с removeEvents, так что вы не получите накопление: http://www.jsfiddle.net/dimitar/8a7LG/5/