【发布时间】:2011-05-29 11:20:29
【问题描述】:
当您构建一个使用 PHP 在服务器端设置设置的应用程序时,在页面加载时将这些设置传达给 Javascript 的最佳方式是什么?
为什么要在服务器端设置所有设置,而不是部分在客户端,部分在服务器端? 因为应用程序肯定是用 PHP 编写的,但 Javascript 部分可能是用纯 Javascript、JS Prototype、jQuery、... 因此,这样我们就可以为整个应用程序保留一组 PHP 函数,独立于 Javascript 层。
我自己一直在考虑几个解决方案:
1.通过隐藏的表单域:
<input typ="hidden" name="settings" value="JSON encoded settings" />
缺点:
- 可在源代码中直接查看。
- Input hidden 是用来提交隐藏数据的,不是用来获取数据的。
2。使用 Ajax
页面一加载,就会有一个 ajax post 请求到服务器来检索设置。
优点:
- 干净
- 客户端只能请求它需要的设置。
缺点:
- 较重的页面加载
3.直接通过源设置文件 (XML)
优点:
- Javascript 和 PHP 代码完全解耦(关于设置)。
缺点:
- 设置文件被加载两次(服务器端 + 客户端)
4.还有什么?
编辑:为 2 号增加了一项优势
【问题讨论】:
-
根据设置设置变量的脚本标签到底有什么问题?
-
@DampeS8N 你的意思是在服务器端输出那个脚本标签吗?
-
如果设置不是直接来自用户,只是来自配置文件,只需将它们回显到位于文件顶部脚本标记内的 JS 中。如果数据来自用户,或(用户可编辑)数据库。不要那样做。就像泰布罗所说的那样。
标签: php javascript xml settings