使用来自服务器会话的重复数据的js对象是否常见?
例如,如果用户已登录,我会将此服务器端存储在我的$_SESSION
中。但是,当我在客户端时,如果不检查DOM的某些部分(这很糟糕),或者发送一些Ajax调用来检查$_SESSION
中的值,我就无法检查登录状态。我应该只创建一个包含重复数据的js对象吗?
这似乎是个坏主意,因为现在我总是需要保持两个对象同步,但我不知道如何解决这个问题。
您可以在浏览器加载时将几行Javascript回显到浏览器中,或者在需要$_SESSION变量时提取一个单独的脚本。因此,您可以有一个文件"session.php",它只包含以下行:
<?php
session_start();
echo json_encode($_SESSION);
?>
然后你可以在Javascript/HTML中使用它(这样你就不必做花哨的AJAX或任何事情):
var session = <?php include('session.php'); ?>
我在这里构建了一个实例:http://home.edgemontgeek.com/dev/stackoverflow/14919887/代码可在此处下载:http://home.edgemontgeek.com/dev/stackoverflow/14919887/code.zip
请记住,您需要保持它们的同步,如果您希望它们在页面加载之间发生变化,则必须研究AJAX和json_decode。