Javascript 一个ajax处理程序还是多个处理程序?

Javascript 一个ajax处理程序还是多个处理程序?,javascript,html,ajax,Javascript,Html,Ajax,我的网页在使用时需要发送/接收几个ajax操作。目前,我使用一个ajax处理程序来处理所有事件。所有ajax请求都使用这种格式(type){json string}发送/接收 一段js代码将处理ajax请求/响应:解析响应文本->获取类型->选择…case在每个类型case中执行某些操作 这是可行的,但是随着ajax事件的增长,出现了太多的情况,比如从0到99。嗯,这不太可能是一个维护或进一步发展容易的工作 也许我需要将单个ajax处理程序拆分为多个?那么浏览器如何知道哪个ajax响应应该发送给

我的网页在使用时需要发送/接收几个ajax操作。目前,我使用一个ajax处理程序来处理所有事件。所有ajax请求都使用这种格式(type){json string}发送/接收

一段js代码将处理ajax请求/响应:解析响应文本->获取类型->选择…case在每个类型case中执行某些操作

这是可行的,但是随着ajax事件的增长,出现了太多的情况,比如从0到99。嗯,这不太可能是一个维护或进一步发展容易的工作

也许我需要将单个ajax处理程序拆分为多个?那么浏览器如何知道哪个ajax响应应该发送给特定的处理程序呢

任何建议都将不胜感激

目前代码如下所示:(其中一个页面使用简单javascript,没有使用框架)


这是软件工程的基本挑战之一。你有一项任务要重复执行,但细节会随着每次变化而略有变化,因此你如何重用代码并保持干净……每个实质性的应用程序都有这个问题

您需要使用一种设计方法来实现良好的关注点分离。我通常为我的应用程序开发API,它完全独立于应用程序的其他部分。我的API只做一件事——它与服务器通信

它没有特定于应用程序的代码

这意味着,如果需要,我可以在不同的应用程序中重用我的api。这也意味着我可以独立于应用程序测试我的API

假设您需要执行类似于
loadObject
的操作。应用程序可以看到

App.API = {
    loadObject: function(params, onSuccess, onFail) {...}
}
保持这种解耦的关键是
onSuccess
onFail
回调。使用API的应用程序在这些函数中传递;因此,API对特定于应用程序的逻辑一无所知——它所知道的只是如果适当地触发这些回调。回调是采用作为响应数据的参数的方法;API所做的只是将响应数据传递给回调

由于大多数情况下,ajax调用的细节都有很多公共项,因此我还将创建某种触发请求的
xhrwraper
。因此,在
loadObjects
中,您可以使用xhr助手发出请求

xhr.sendRequest(url, method, onSuccess, onFail);
通过这种方式,可以最大限度地减少触发XHR的所有繁琐工作

显然,你可以走得更远;例如,大多数情况下失败是不好的,因此我的xhr包装器将有一个默认的onFail实现,并且只有在有意义的情况下,特定的API方法才能传递重写

xhr.sendRequest(url, method, onSuccess, onFail);