对于ajax响应,哪种方式更好,死亡或回声?

时间:2014-11-27 07:18:33

标签: javascript php jquery ajax json

我在我的一个网页中使用AJAX。 我在这里指定了dataType为JSON。

jQuery.ajax({
    url:  "www.mydomain.com/ajax.php",
    type: "post",
    dataType: "json",
    data:{to_email_address:"myemail@gmail.com"},
    success:function(response){
        response = jQuery.parseJSON(response);
        if(response){
            alert("success");
        }
        else{
            alert("Failed, Try again");
        }
    }
});

ajax.php中,我使用echo json_encode功能如下

<?php
    if(!($mail_to_address, $mail_subject, $content, $headers)) {
        echo json_encode(false);
    }
    else{
        echo json_encode(true);
    }
?>

但是我已经在某处使用die代替echo,就像

一样
<?php
    if(!($mail_to_address, $mail_subject, $content, $headers)) {
        die(json_encode(false));
    }
    else{
        die(json_encode(true));
    }
?>

任何人都可以解释哪种方式更好,为什么? 提前谢谢..

1 个答案:

答案 0 :(得分:5)

如果你echo而不是die,那么你冒着错误地在某天错误地产生更多输出的风险,而不是后来的行。

如果你die,它会在那里打印并结束所有内容。这是唯一的区别。

以下是使用代码的示例

<?php
    if(!($mail_to_address, $mail_subject, $content, $headers)) {
        echo json_encode(false);    // a die would stop everything here
    }
    else{
        echo json_encode(true);
    }
    echo "oops this was mistakenly printed";  // this breaks your JSON
?>

如果您使用die代替echo,则最后echo不会破坏您的JSON,因为它永远不会执行。

如果您知道在有条件检查后没有任何内容,或者您​​确信没有特殊原因可以使用die(),则可以继续使用echo。所以你的问题的答案是:只要你的输出在你的控制之下,它们都不会优于另一个。