首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >jQuery和Ajax返回不同的数据集,而不是创建单独的ajax调用。

jQuery和Ajax返回不同的数据集,而不是创建单独的ajax调用。
EN

Stack Overflow用户
提问于 2015-09-22 07:55:13
回答 2查看 45关注 0票数 2

我有以下jQuery setInterval函数,可以使用ajax以30秒的间隔从php文件重新加载数据。为了获取3位信息,我正在运行3个不同的ajax调用。有没有办法将3个独立的ajax调用合并到一个调用中?其中2个调用的php文件返回来自会话的json数据,而另一个调用只返回一个数字以显示未读消息的数量。

下面是我目前拥有的jQuery代码:

代码语言:javascript
运行
AI代码解释
复制
setInterval(function(){


jQuery.ajax({ url: '/ajax-msgs.php?check=1', type: 'POST', dataType: 'json', cache: 'false', success: function(data) {
    var msghtml = '';
        jQuery.each(data, function() {
            msghtml += '<li><a href="message.php?id=' + this.msg_id + '">' + this.msg_subject + '</a></li>';
        });
        jQuery("#msg-menu").html(msghtml);
    }
});



jQuery.ajax({ url: '/ajax-msgs.php?check=2', type: 'POST', dataType: 'json', cache: 'false', success: function(data) {
        jQuery.each(data, function() {
            jQuery.jGrowl(this.msg_title, { life: 12000});
        });
        }
    });



    jQuery.ajax({ url: '/ajax-msgs.php?check=3', type: 'POST', dataType: 'json', cache: 'false', success: function(data) {
            jQuery("#msg-count").text('87');
        }
    });


}, 30000);

下面是php文件所做的工作:

代码语言:javascript
运行
AI代码解释
复制
if ($_GET['check']==1){

iMapFunction();
print_r(json_encode($_SESSION['message_overviews']));

} elseif ($_GET['check']==2){

iMapFunction();
print_r(json_encode($_SESSION['messages_new_notifications']));
unset($_SESSION['auth_messages_new_notifications']);

} elseif ($_GET['check']==3){

iMapFunction();
echo $_SESSION['messages_unread_count'];
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-22 08:19:17

我们的PHP可以在一个调用中返回所有数据,如下所示:

代码语言:javascript
运行
AI代码解释
复制
<?php

iMapFunction();
$response = array(
 'message_overviews' => $_SESSION['message_overviews'],
 'messages_new_notifications' => $_SESSION['messages_new_notifications'],
 'messages_unread_count' => $_SESSION['messages_unread_count']
);

print_r(json_encode($response));

?>

您可以像以前那样对每个数据进行迭代:

代码语言:javascript
运行
AI代码解释
复制
setInterval(function(){
    jQuery.ajax({ url: '/ajax-msgs.php', dataType: 'json', cache: 'false', success: function(data) {

        var message_overviews = data.message_overviews;
        var messages_new_notifications = data.messages_new_notifications;
        var messages_unread_count = data.messages_unread_count;
        var msghtml = '';

        jQuery.each(message_overviews, function() {
            msghtml += '<li><a href="message.php?id=' + this.msg_id + '">' + this.msg_subject + '</a></li>';
        });
        jQuery("#msg-menu").html(msghtml);

        jQuery.each(messages_new_notifications, function() {
            jQuery.jGrowl(this.msg_title, { life: 12000});
        });

        jQuery("#msg-count").text(messages_unread_count);

    }});

}, 30000);
票数 0
EN

Stack Overflow用户

发布于 2015-09-22 08:17:28

只需创建一个端点,该端点在一个调用中执行所有操作:

我不知道php,但是创建一个关联数组并将数据分配给它。

代码语言:javascript
运行
AI代码解释
复制
x = {};
x['message_overviews'] = $_SESSION['message_overviews'];
x['auth_messages'] = $_SESSION['auth_messages_new_notifications'];
x['messages_unread_count'] = $_SESSION['messages_unread_count'];
print_r(json_encode(x));

然后,在jquery响应函数中,您可以访问数据并执行操作:

代码语言:javascript
运行
AI代码解释
复制
function(data){
  console.log(data.message_overviews);
  console.log(data.auth_messages);
  console.log(data.messages_unread_count);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32721437

复制
相关文章
jQuery解析ajax 返回的json
一、controller /** * 检查预订开始时间和结束时间的合法性 * @param startTime * @param endTime * @return */ @RequestMapping(value = "checkTime") @ResponseBody public String checkTime(String startTime, String endTime) { int space=Time
week
2018/08/24
2.5K0
Js原生Ajax和Jquery的Ajax
一、Ajax概述 1.什么是同步,什么是异步 同步现象:客户端发送请求到服务器端,当服务器返回响应之前,客户端都处于等待 卡死状态 异步现象:客户端发送请求到服务器端,无论服务器是否返回响应,客户端都可以随 意做其他事情,不会被卡死
忆想不到的晖
2022/04/13
19.7K0
Js原生Ajax和Jquery的Ajax
jQuery ajax - ajax() 方法jQuery ajax - ajax() 方法
http://www.w3school.com.cn/jquery/ajax_ajax.asp
一个会写诗的程序员
2018/08/17
14.7K0
ajax parsererror报错,jQuery为ajax请求返回“ parsererror”[通俗易懂]
我一直在从jquery收到针对Ajax请求的“ parsererror”,我尝试将POST更改为GET,以几种不同的方式(创建类等)返回数据,但我似乎无法弄清楚问题出在哪里。
全栈程序员站长
2022/09/07
1.5K0
jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
AJAX是与服务器交流数据的艺术,它在不重载全部页面的情况下,完成了对部分网页的更新。
全栈程序员站长
2022/08/29
1.7K0
jquery ajax步骤,jquery ajax(ajax请求的五个步骤jQuery)
Jquery和Ajax
1、  ajax基础知识(http://www.0377joyous.com/archives/484.html) 2、  load()函数示例代码 <button id=”send”>触发</but
苦咖啡
2018/05/07
1.2K0
jQuery的ajax
今天公司实习生问我jQuery的ajax怎么写,这玩意不是很简单吗 $.ajax({ url: "/cowBeer", //url method: "post", //请求方式 contentType: "application/json", //参数类型 data: JSON.stringify({ //这里面是参数 "name":"cowBeer"
阿超
2022/08/16
7420
jQuery ajax - ajax()方法
什么是 AJAX? AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
江一铭
2022/06/17
9.5K0
JQuery ajax调用asp.net的webMethod
在vs2010中,用JQuery ajax调用asp.net 2.0的  webMethod 方法时,怎么都调不出来,原来和3.5 有点出入。
跟着阿笨一起玩NET
2018/09/19
2.3K0
JQuery ajax调用asp.net的webMethod
Jquery ajax调用后台aspx后台文件方法(不是ashx)
在asp.net webForm开发中,用Jquery ajax调用aspx页面的方法常用的有两种:下面我来简单介绍一下。   (1)通过aspx.cs的静态方法+WebMethod进行处理    简单的介绍下WebMethod方法的用法    1.修饰符主要用public static修饰    2.方法前面加上[WebMethod]属性表明这是WebMethod方法    3.前台html页面(Client端)访问时要使用post方法,和后台.cs文件进行数据交互,否则会返回整个html页面。    4
郑小超.
2018/01/24
7K0
JQuery ajax调用asp.net的webMethod
本文章转载:http://www.cnblogs.com/zengxiangzhan/archive/2011/01/16/1936938.html
跟着阿笨一起玩NET
2018/09/19
2.1K0
js中的ajax和jquery中的ajax学习笔记
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100806.html原文链接:https://javaforall.cn
全栈程序员站长
2022/06/30
2.8K0
js中的ajax和jquery中的ajax学习笔记
jQuery,和嵌入其中的Ajax
jQuery库是一个 JavaScript 文件,您可以使用 HTML 的 <script> 标签引用它:
PM吃瓜
2019/08/12
3.2K0
jQuery,和嵌入其中的Ajax
jQuery的ajax详解
jQuery内部也封装了对原生ajax请求的方法,可以很方便我们的对后台异步请求处理。
老马
2018/07/31
2.4K0
jquery的ajax例子
然后使用$.post(url,data,success)进行异步交互post ,get ,ajax方法都可以实现
全栈程序员站长
2022/09/17
6410
jQuery中的Ajax
相同点: 都是将数据提交到远程服务器 不同点: 1. 提交数据存储的位置不同 GET请求会将数据放到URL后面 POST请求会将数据放到请求头中 2. 提交数据大小限制不同 GET请求对数据有大小限制 POST请求对数据没有大小限制
不愿意做鱼的小鲸鱼
2022/08/24
1.3K0
锋利的JQuery —— Ajax
大图猛戳
用户1154259
2018/01/17
9040
锋利的JQuery —— Ajax
jquery ajax
image.png
用户5760343
2022/05/13
1K0
jquery ajax
jQuery Ajax
AJAX简介 AJAX 是与服务器交换数据的技术,它在不重载全部页面的情况下,实现了对部分网页的更新。 AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScr
静默虚空
2018/01/05
1.1K0
jquery ajax
ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息。ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信。ajax通信的过程不会影响后续javascript的执行,从而实现异步。
Devops海洋的渔夫
2019/05/30
1.3K0

相似问题

Ajax调用返回函数而不是数据

112

返回空值而不是xml数据的Ajax调用

11

Ajax返回对象而不是数据

20

jQuery ajax返回负数而不是内容

10

jQuery .find()对来自.ajax()调用的数据返回"[object Object]“,而不是div

173
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档