我会争辩说,正如您所说,自引用页面没有遵循适当的关注点分离。你在同一个页面上做两件不同的事情,更清晰的逻辑分离会让你在两个不同的页面上做这些事情。
MVC(模型视图控制器, http ://en.wikipedia.org/wiki/Model-view-controller)框架强调了这种做法,例如 Ruby on Rails、Django 和 ASP.NET MVC(我不知道)我不知道任何 PHP 的,尽管我确信有一些)。
这也是 RESTful (REpresentational State Transfer) 实践的一个基本特征,其中每个 URL 代表一个资源和要对该资源执行的单个操作。另一方面,自引用页面的每个 URL/页面将有“2”个操作,例如“新建”(用于填写表单)和“创建”(实际创建对象)。
为网站实践 MVC 和 RESTful ( http://en.wikipedia.org/wiki/RESTful ) 实践通常会产生更简洁的代码和更好的关注点分离。这很重要的原因是它使测试更容易(我所说的测试是指单元和功能测试,而不是“在我的浏览器上尝试页面”测试)。
统计数据的混乱是一个例子,说明不分离你的关注点会导致意想不到的复杂性。有些人可能会通过尝试检测请求的引用者来解决此问题,并查看它是否是同一页面。这些实际上只是解决症状的代码绷带,而不是解决问题。如果您在网站的不同页面中保留不同的“操作”,您可以将这些页面集中在他们的一项工作上,并确保他们做得很好,而不是用各种条件和额外的复杂性来混乱代码,如果完全避免的话1 页只有 1 个作业。