gpt4 book ai didi

php - 来自一个 AJAX 请求的多个响应

转载 作者:可可西里 更新时间:2023-11-01 12:53:54 26 4
gpt4 key购买 nike

这里并不是真的在寻找代码示例,只是在寻找概念。

我现在在一个页面上有三个部分,它们通过对 PHP 脚本的三个单独 AJAX 调用进行更新,这些脚本返回 JSON。将这三个调用压缩为一个更大的调用并以 JSON 形式在客户端接收响应的最简单方法是什么?我将如何分离客户端上的响应,以便我可以根据发回的信息处理响应数据?

最佳答案

我喜欢 Cris 的方法,但认为我可以提供一点改进。由于您已经有 3 个独立的实体,为了减少重新编码所有内容的需要,您可以通过 include 'page.php' 将 PHP 合并到一个文件中,然后通过JSON 的属性以它们各自的作用命名(比如“名称”、“日期”和“fuzzyThings”)。然后,您发送请求的客户端代码将简单地让您的 3 个函数单独发送的所有参数在一个请求中发送。返回的 JSON 看起来像这样(将您的对象/数组/任何内容放在注释区域):

{
"names" : {/*stuff needed for names goes in here*/},
"dates" : {/*stuff needed for dates goes in here*/},
"fuzzyThings" : {/*all fuzzy things goes in here*/}
}

一旦你把它送到客户端,因为我假设每个可能已经有一个函数(或一组函数)来处理它的返回数据,你应该能够以这种方式调用它们:

function handler(retText) {
var returnedObject = eval(retText);

doStuffWithNames(returnedObject.names);
doStuffWithDates(returnedObject.dates);
playWithFuzzyThings(returnedObject.fuzzyThings);
}

此外,在 PHP 端,您可以通过以下方式制作统一的 PHP 页面(希望无需重新编码任何内容):

<?php
echo '{';
echo '"names":{';
include 'names.php';
echo '},';

echo '"dates":{';
include 'dates.php';
echo '},';

echo '"fuzzyThings":{';
include 'fuzzyThings.php';
echo '}';
echo '}';
?>

注意:您可能需要编辑 3 个 php 页面,以便它们正确检查 $_POST 并且不会干扰其他页面的功能(如果您还没有的话),我更喜欢这种方法if(isset($_POST['whatever'])) { ... } 检查所有内容是否已正确发送,这样,您可以包含任意数量的内容,如果有与 php 文件无关(即您没有在该页面上使用该部分),然后它将返回一个空白属性,您根本不会使用它(基本上使其成为“一刀切”类型的事情)。

希望对你有用!

关于php - 来自一个 AJAX 请求的多个响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/818700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com