【问题标题】:How to handle constants that apply to both server and client code?如何处理同时适用于服务器和客户端代码的常量?
【发布时间】:2012-12-21 02:15:48
【问题描述】:

假设您将输入到表单中的文本限制为 500 个字符。您实际上并没有停止实时表单上的文本输入,而是有一个计数器在用户结束时提醒用户。 JS代码需要知道限制是500。也许JS代码也会在提交时修剪文本。

在提交时,您使用 AJAX 对表单数据进行一些服务器端魔术。谨慎的做法是让服务器端 PHP 代码现在将注释文本修剪为 500 个字符,无论 JS 代码是否这样做。

这引入了一种情况,您必须在两段代码中输入一个常量,这对维护不利。这是一个简单的例子。情况可能更糟。

我在这里考虑两种情况:

JavaScript/JQuery <-> PHP
JavaScript/JQuery <-> Node.js

您如何进行清理以减轻维护负担并减少出错的可能性?

【问题讨论】:

  • 两个代码只使用一个配置文件?如果是带变量的 PHP 文件,则可以在 JS 文字中回显它们,如果是 JSON 文件,则可以在任何地方读取。

标签: php javascript jquery node.js


【解决方案1】:

服务器是存储此类信息的唯一可靠位置,因为客户端上的任何内容都可以被操纵。

所以我会将设置数组或配置文件作为 json 字符串发送给客户端。

【讨论】:

  • 所以你会让每个客户端脚本在每次运行时都联系服务器以获取常量?我在这里担心的是,如果由于某种原因数据无法通过,则可能会出现代码损坏。还有一个事实是,我们正在向每个页面添加交易,可能有很多。
  • 我的一个想法可能是运行一个 cron 作业来寻找需要这些常量的文件并修改它们。有了这些,JS 将使用已经填充到代码中的正确值来提供服务。这还没有经过深思熟虑,可能没有意义。我可以看到很多潜在的极端情况。
  • 另一个选项可能是让生成页面的 PHP 脚本(不是 AJAX 事务脚本)运行一个检查和更新任何包含的 JS 文件的例程。必须以某种方式标记有问题的变量,以便可以识别它们并将值从公共源文件中提取出来。必须设计一种机制来最大限度地减少服务器端对文件的重复修改,一旦它们被更新一次。
  • @martin's 您只需要在初始页面加载时发送一次变量。然后,只要用户停留在同一页面上,它们就可用,包括在 ajax 请求中。
  • 我总是担心潜在的故障模式。你认为他们在这种情况下可能会是什么。或许更大的问题是:大男孩是如何做到的?我想如果有一个庞大的代码库,就会有遍布各处的常量。如果没有明智的方法来管理它们,这将是一场维护噩梦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-10
  • 1970-01-01
  • 2021-10-02
  • 2020-06-09
相关资源
最近更新 更多