【问题标题】:One target page for all ajax calls or one for each [closed]所有ajax调用一个目标页面或每个目标页面一个[关闭]
【发布时间】:2012-05-24 10:28:21
【问题描述】:

如果我的页面上有两个(或更多)ajax 调用,ajax1 和 ajax2,我是创建一个有条件返回字符串的通用目标 url ajax.php,还是每次调用都创建一个目标 php 页面,ajax1。 php和ajax2.php?

【问题讨论】:

    标签: php javascript ajax call echo


    【解决方案1】:

    只需制作一个 php 页面,然后在所有 ajax 函数中在数据字符串中创建一个标志变量,如“&ajax1="+"1”,并在 php 页面上使用 if 条件

    if($_REQUEST['ajax1']){
     your code
      }
     if($_REQUEST['ajax2']){
     your code
      }
    

    【讨论】:

      【解决方案2】:

      您可以只使用一个主要的 PHP 脚本来处理您的所有 AJAX 调用,并且只需在您的请求中附加一个额外的参数来指定您需要什么响应。

      $.post('/ajaxResponser.php',{'method':'getData','user_id':'123'},function(response){
        // handle response
      },"json");
      

      然后在您的ajaxResponser.php 中,您将根据传递的method 参数决定调用什么方法 -

      $method = $_REQUEST['method'];
      $user_id = $_REQUEST['user_id'];
      switch($method){
        case 'getData':
          echo json_encode(array('data'=>getData($user_id)));
        break;
        default:
          echo json_encode(array('err'=>'unknown method'));
        break;
      }
      

      【讨论】:

      • 最佳实践是什么?一个目标页面还是多个目标页面?
      • 这一切都取决于您的逻辑和您使用的实际方法。如果您有很多方法要调用,您可能需要考虑将它们拆分为多个文件。一个用于用户操作,一个新闻,一个用于在线用户......只是一些示例......最佳实践是确保如果您有多个目标页面 - 它们的名称将是有意义的;方法名称也是如此。这一切都取决于您在做什么...确保下一个查看您的代码的程序员可以轻松了解每个方法的位置以及在什么文件中...
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-08-16
      • 2021-08-19
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      相关资源
      最近更新 更多