我想重用一个Request.JSON对象,但我不确定如何。我正在寻找类似以下示例的内容:
// In initialize/constructor
this.request = new Request.JSON( {
method : 'get'
});
// Elsewhere
this.request.setOptions({
url : 'http://...',
onSuccess : onSuccess,
onFailure : onFailure
}).send();
答案 0 :(得分:3)
这种方法会遇到一些问题。
如果您只有一个实例处理所有请求,那么您需要确保在发生请求时,没有其他任何可以使用新选项作为其异步重新启动它。此外,事件将叠加。您运行的每个新实例都将addEvent onComplete / onSuccess / onFailure,它们并不总是相关的。所以你需要在每次运行之前将removeEvents()应用于请求实例。
看看http://www.jsfiddle.net/dimitar/8a7LG/4/
我不是把它作为我如何写它的例子,而是看看它带来的问题。首先单击第二个链接然后单击第一个链接(jsfiddle增加2秒网络延迟),您将看到来自第二个链接的onComplete事件的警报也堆叠在第一个链接上。此外,对于链接2上的每次点击,您将看到除旧的警报之外的新警报。
您还必须考虑扩展Request.JSON的适用范围,但这一切都取决于您的需求。
P.S。如果你转到Request.JSONP,这种结构可能会起到一些作用,特别是重置回调函数等。
祝你好运:)编辑这是使用removeEvents的事情,因此您无法进行堆叠:http://www.jsfiddle.net/dimitar/8a7LG/5/
答案 1 :(得分:0)
我对接受的答案没有区别,但它实际上回避了恕我直言的问题。
看看下面的博文(不是我的);在那里,在副标题带有Request.HTML的多个链接下,您可以找到有关如何重用Request实例的一些指导。