rof*_*fle 7 javascript php ajax json
这里不是真正寻找代码示例,只是概念.
我现在在页面上有三个部分,通过对PHP脚本的三个单独的AJAX调用进行更新,这些部分返回JSON.将这三个调用压缩为一个较大的调用并在JSON中接收客户端响应的最简单方法是什么?如何在客户端上分离响应,以便根据发回的信息操作响应数据?
我喜欢 Cris 的方法,但我认为我可以提供一些改进。由于您已经拥有 3 个独立的实体,为了减少重新编码所有内容的需要,您可以执行以下操作:将 PHP 合并到一个文件中,include 'page.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*/}
}
Run Code Online (Sandbox Code Playgroud)
一旦您将其发送到客户端,因为我假设每个函数可能已经有一个函数(或一组函数)来处理其返回数据,您应该能够以这种方式调用它们:
function handler(retText) {
var returnedObject = eval(retText);
doStuffWithNames(returnedObject.names);
doStuffWithDates(returnedObject.dates);
playWithFuzzyThings(returnedObject.fuzzyThings);
}
Run Code Online (Sandbox Code Playgroud)
另外,在 PHP 端,您可以通过以下方式创建统一的 PHP 页面(希望无需重新编码任何内容):
<?php
echo '{';
echo '"names":{';
include 'names.php';
echo '},';
echo '"dates":{';
include 'dates.php';
echo '},';
echo '"fuzzyThings":{';
include 'fuzzyThings.php';
echo '}';
echo '}';
?>
Run Code Online (Sandbox Code Playgroud)
注意:您可能需要编辑 3 个 php 页面,以便它们正确检查 $_POST 并且不会干扰其他页面的功能(如果您还没有这样做的话),我更喜欢以下方法if(isset($_POST['whatever'])) { ... }检查所有内容是否已正确发送的方法,这这样,您可以包含任意数量的内容,如果与 php 文件无关(即您没有使用该页面上的该部分),那么它将返回一个空白属性,并且您根本不会使用它(基本上使其成为“一刀切”类型的东西)。
希望它对你有用!
| 归档时间: |
|
| 查看次数: |
5520 次 |
| 最近记录: |