PHP和Ajax如果Ajax调用相同的PHP页面,是否重新评估/重新加载整个页面?

PHP和Ajax如果Ajax调用相同的PHP页面,是否重新评估/重新加载整个页面?,php,ajax,Php,Ajax,我有一个显示表单的PHP页面。这些按钮是一个按钮(不提交)。单击时,它们调用Javascript中的函数,该函数发出和Ajax调用。Ajax使用的URL是指向同一php页面的URL,传递变量。php页面的顶部检查这些变量是否存在,如果存在,则在对象中执行数据库工作,将消息回显到Ajax并调用exit()。 我的问题是,在exit()之后,php页面的其余部分是否重新计算/执行?我似乎找不到答案。基本上,在调用exit()之后,如果使用对象查询数据库以确定要显示的内容,会发生这种情况吗? 如果aj

我有一个显示表单的PHP页面。这些按钮是一个按钮(不提交)。单击时,它们调用Javascript中的函数,该函数发出和Ajax调用。Ajax使用的URL是指向同一php页面的URL,传递变量。php页面的顶部检查这些变量是否存在,如果存在,则在对象中执行数据库工作,将消息回显到Ajax并调用exit()。 我的问题是,在exit()之后,php页面的其余部分是否重新计算/执行?我似乎找不到答案。基本上,在调用exit()之后,如果使用对象查询数据库以确定要显示的内容,会发生这种情况吗?
如果ajax调用同一个php页面,那么整个php是否会重新评估

简短回答:视情况而定。如果设计正确,则不应使用

答案很长。通常,您使用PHP脚本提供HTML,在您的情况下,它就是这样做的——它返回显示表单的HTML,并且可能在提交时解释结果。但是,PHP脚本(程序)可以做更多的事情。您应该只考虑URL到应用程序的入口点,而不是PHP脚本。根据请求的类型,此URL可以为代码的不同部分提供服务。例如,它可以检测表单的某个部分正在对同一入口点执行AJAX请求,并将该调用转移到只响应AJAX请求的代码部分。在PHP中,这种分支可以使用。在PHP世界中,当检测到一些AJAX头或出现POST请求时进行分支是非常常见的例子

再次回答你的问题。如果您为此分支代码,然后只执行与AJAX请求相对应的部分代码,而不是创建HTML的部分代码,则不应重新评估整个页面

例如:

if ($_SERVER['HTTP_X_REQUESTED_WITH']) {
    // treat the ajax request
}

if ($_SERVER['REQUEST_METHOD'] === "POST"){
    // do stuff for a POST request
}

如果是同一个页面,为什么不使用
$\u REQUEST
或其他替代ajax的方法呢?在任何情况下,这可能比堆栈溢出更适合程序员的站点。请添加代码示例以更好地理解问题。从
退出-输出消息并终止当前脚本。调用该函数的结果非常清楚。不,脚本在调用
exit
后终止。请添加具有预期和实际结果的尝试代码。我理解这一点。我的理解是:对php脚本的ajax调用。php脚本创建my对象,插入/更新数据库,并将消息发送回Javascript,然后调用exit()。就这样结束了。除非我重新加载页面。但是,由于某些原因,表单数据会根据新插入的数据重新评估。但是,我的问题的答案是,这不应该发生。在exit()之后,脚本应该停止,即使它是同一个php页面,并且新数据不应该在exit()之后显示。即使在正常进入页面时(在检查Ajax中设置的变量之后),我创建了数据库对象并查询数据库,以便确定要显示的数据以及如何显示数据。检查错误:如果PHP脚本中存在逻辑错误,则会重新执行整个页面,在表单处理或JS中,不执行ajax请求,而是执行常规请求-重定向到同一页面。就可以了。只是想确保我理解并确认处理应该在exit()后停止。如果是这种情况,我可以继续查看代码继续执行的原因。谢谢这就是为什么人们要求你的代码->来发现错误的原因。如果你不把代码放进去,你就必须自己去发现它。在没有代码的情况下,我们的输入仅限于理论方面。看见