我刚刚开始学习PHP,刚刚完成了$_POST
/$_GET
。现在我想知道,PHP处理同一文件中表单中的数据或将数据发送到另一个文件(action="antherfile"
)的利弊是什么?
从逻辑上讲,我会认为将其发送到另一个文件会增加时间处理它,但这是真的吗?当我在同一个文件中有PHP脚本时,当我点击提交按钮时,页面似乎不会重新加载(但内容会发生变化)。或者是吗?如果是这样,唯一的区别不是我必须在两个文件中键入菜单的脚本(假设您在所有页面上都有相同的菜单)?这将导致更多的编码/更少的空间?
让PHP在同一个文件中处理表单中的数据,或将数据发送到另一个文件(action="另一个文件")的利弊是什么?
您正在合并文件和网址。
通过在不同文件之间拆分逻辑(然后在适当的情况下include
d),您可以分离关注点并使您的代码更易于管理。
通过让单个URL同时负责表单的显示和表单数据的处理,您不会陷入处理表单数据的结果要求您重新显示包含错误消息的表单的尴尬境地。如果您使用了两个不同的URL,则需要在处理URL上显示表单(因此您有两个不同的URL来显示表单),或者执行HTTP重定向回原始URL,同时以某种方式将错误的详细信息传递给它。
从逻辑上讲,我会认为将其发送到另一个文件会增加处理它的时间,但这是真的吗?
不,在处理的时间尺度上没有区别。
当我在同一个文件中有PHP脚本时,当我点击提交按钮时,页面似乎没有重新加载(但是内容发生了变化)。
它确实重新加载。
如果是这样,唯一的区别难道不是我必须在两个文件中键入菜单的脚本(假设您在所有页面上都有相同的菜单)吗?
这就是include
的作用。
在任何语言中,我们总是试图编写干净的代码。这就是为什么我们遵循MVC。
从逻辑上讲,我会认为将其发送到另一个文件会增加处理它的时间,但这是真的吗?我认为否。
因为当我们将数据发送到另一个页面和顶部的另一个页面时,我们会回显该发布数据并退出。你会看到它不需要时间。之后我们重定向/加载一些html页面需要时间。
我们在哪里发送数据(同一页或另一页)并不重要。重要的是在那之后加载什么。
速度没有区别。
无论您在标准提交中发布表单内容,此数据都将发送到服务器并下载响应(处理后)。
唯一的区别是代码的组织。绘制页面模板(菜单或其他固定部分)的逻辑应该存储在某个文件中,您可以单独包含或由函数调用。
同样正确的是,当你发布你的数据时,出于某种原因,例如注册一个用户。处理用户注册的php文件会这样做,并输出消息,而不是其他功能,这是一个很好的做法。如果您的文件有一些逻辑开关,使其输出一个空表单或基于post或get变量存在的注册消息,您会注意到,当您扩展到更复杂的任务时,这将增加复杂性,并使代码更难处理。