繁体   English   中英

从PHP将数据传递到JavaScript的替代方法?

[英]Alternative to passing Data to JavaScript from PHP?

我有一个相当大的应用程序,并且我目前正在尝试寻找一种方法,该方法必须通过DOM从PHP(第3方API等的用户令牌)传递数据。 当前,我在单个元素上使用data-*属性,并从中解析数据,但这很混乱。

我考虑过仅使用所有配置来制作元素编码的JSON的内容,这将大大改善结构和有效性,但同时在DOM中存储敏感信息既不理想也不安全。

通过AJAX获取数据也不可行,因为应用程序一直在任何页面上都需要此信息-因此,在允许用户输入或控制之前在每个页面加载上运行AJAX请求对于用户来说是一件痛苦的事情,并且会给我的服务器。

我考虑过的事情是对信息的初始请求,将其与数据的校验和一起存储在Cache / localStorage中,并在DOM中包括最新数据的校验和。 因此,在每次页面加载时,它都会比较校验和,如果校验和不同(JavaScript的Cache / localStorage中存储的数据已过期),它将发送另一个请求。

我宁愿不必走这条路,我想知道您是否可以想到更好的方法。 我在其他问题/ Google中找不到任何其他方法,因此非常感谢您的帮助。

您也可以在模板中发出所需的json并将其分配给javascript全局。

如果您使用支持像twig这样的继承的模板系统,这将特别容易。 然后,您可以在应用程序的基本模板中执行以下操作:

<script>
MyApp = {};
MyApp.cfg = {{cfg | tojson | safe}};
</script>

其中cfg是模板上下文中的php字典。 这些过滤器不是特定于树枝的,但是可以给您一个想法。

如果您要存储敏感信息,那将是不安全的,但是比将信息存储在本地存储中要容易得多,

您还可以创建一个php文件,并将标头设置为javascript类型。 将此文件请求为普通的javascript文件。 <script src="config.js.php"></script> (考虑文件名是config.js.php),您可以构建JavaScript代码并简单地动态分配值。

为了安全起见,尤其是在需要登录的情况下,只有在用户登录后或其他情况下才能返回此文件。 否则,您只需返回一个空白文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM