【问题标题】:avoid mismatch between server side and client side result避免服务器端和客户端结果不匹配
【发布时间】:2025-12-19 02:40:06
【问题描述】:

我使用 PHP 和 Javascript。在我的网站中,一些结果是在服务器端一些客户端处理的。

仅使用 javascript 会阻止您的网站被搜索引擎正确抓取,而仅使用 PHP 会阻止正确的实时响应。

问题是如何让 js 函数和 PHP 函数得到相同的结果?例如假设有一个函数给出相对时间:

JS:

function relative_time(timestamp)
{
   ...
}

PHP:

function relative_time($timestamp)
{
   ...
}

保持两个函数相互匹配并不容易,因为我想同时编辑这两个函数。例如,如果两者都给我们:

one year ago

我只更改 PHP,给我:

a year ago

那么JS也没有更新。是否有任何标准方法可以确保两者的行为方式相同?


很遗憾js函数不能在服务器端调用。

【问题讨论】:

标签: javascript php coding-style


【解决方案1】:

如果有一些复杂的逻辑,你应该在服务器端实现它,然后通过 AJAX 拉取结果。这样你只需要维护PHP代码并提供一种AJAX API供JS访问。

【讨论】:

  • 真的。但我正在考虑减少服务器流量。
【解决方案2】:

我认为您只需要决定在哪里完成,因为如果它们确实不同,那么哪个是主导的? (那是应该做的) 另外,您如何通过在两个位置都这样做来节省服务器负载?

通过决定执行哪个代码来避免这种情况,如果失败,请在两个位置的代码中添加注释,提醒自己更新两个位置?

【讨论】:

  • 问题是一个代码必须用两种语言编写,这看起来是多余的。服务器和客户端验证是两种语言中类似代码的另一个示例。我该如何避免呢?
  • 好点 - 我猜是代码中的 cmets。 [添加...但我想这是一个不同的原因...与节省服务器资源无关]