如何通过Ajax API处理多个请求
How to handle multiple requests through an Ajax API?
我有一个大型项目,需要通过Ajax调用处理多个函数,到目前为止,我使用不同的文件来处理每个函数调用。我知道必须有更好的方法来处理通过API 的请求
在结构方面,设计这样一个API的标准实践是什么?
谢谢!
它可以是非常简单的东西,也可以是更复杂的东西,你如何编写它取决于你,假设你是唯一一个将使用API的人,据我所知,这类事情没有现成的标准,但解决这类问题的一个好方法是创建一个方便的函数,包括客户端和服务器端,比如
function fetch(what, data) {
data.what = what;
return $.ajax({
url : '/my/ajaxapi.php',
data : data,
dataType : 'json'
});
}
当你需要什么的时候,你可以做
fetch('users', {name : 'Bill'}).done(function(result) {
$('#user').text(result.text);
});
$('.zoidberg').on('click', function() {
var self = this;
fetch('zoidberg', {}).done(function(result) {
$(self).text(result.text);
});
});
在服务器端,你有一个文件,如何设置它取决于使用的语言,比如PHP,你当然可以喜欢类等,或者只做一个简单的if/else或switch/case
<?php
$key = $_GET['what']; // wrap in something that makes it safe
$res = Array();
switch($key) {
case 'users' :
// lookup in DB or something
$res['text'] = $username;
break;
case 'zoidberg' :
$res['text'] = " Why Must I Be a Crustacean in Love";
}
echo json_encode($res);
?>
这只是一个快速的例子,但设置它使其适合您正在做的事情,它可以为您节省大量工作,而且您将所有东西都放在一个地方,所以以后很容易找到和修改,很容易添加可以使用ajax等获得的新东西,并且可能只需要获取资源、数据库连接等一次,而不是在每个文件中。
以下是我认为您可以做的事情-
与其创建多个文件来处理AJAX请求,不如只创建一个文件,然后为不同类型的操作创建不同的函数。
在AJAX请求中指定要调用的函数,然后只运行该函数。
通过这种方式,您不必为不同类型的操作管理多个文件。
例如
jQuery:
$.ajax({
type : "POST",
url : 'myfile.php',
data : {'action': 'func1_name', 'val': 'some_value'} //wants to call a specific function
},
success:function(response){
console.log(response);
}
);
PHP:
//executing func1
if(isset($_POST['action']) && $_POST['action'] == 'func1_name'){
func1();
}
function func1(){
if(isset($_POST['val']))
echo $_POST['val'];
die();
}
function func2(){
}
相关文章:
- Javascript在for循环中等待处理请求
- 处理第三方库发送的ajax请求的开始和结束事件
- PHP处理来自一个页面的http请求,并将其显示在另一个页面上
- 需要帮助处理XML HTTP文件上载请求
- 如何在node+express中重新运行请求处理程序
- 使用异步模块的Express + Mongoose请求处理程序的更简洁的方法
- 开发模式下 Rails 3.2 的请求处理顺序
- 为延迟请求处理创建承诺链
- 如何将多个请求处理函数与 Node.js Express 一起使用
- 取消 ajax 请求:处理程序是否仍可执行
- 多个 jquery ajax 请求 - 处理它的方法
- NodeJS http请求处理程序
- 为什么我要声明handle["/"]在请求处理对象在HTTP服务器与node.js
- 防止双重请求处理
- 从Express中的POST请求处理程序下载文件
- 在Koa请求处理程序中触发下载
- 浏览器在执行“卸载”前发送http请求.处理程序
- 如何使用nodejs请求处理超时
- 使用请求/处理代码加载JS数组的更快方法
- Node.js请求处理程序不会调用函数