我希望我的JS加载需要来自服务器的某些信息。例如URL,特定于语言的消息等。从服务器向JS提供此信息的最佳方法是什么?
现在,我将这些值存储在实际的JS文件中。我不喜欢这种方法,因为信息在服务器端重复。
让初始JS发出Ajax请求以获取所有这些细节是不是一个好主意?也许将它存储在一个全局变量中,以便可以从任何地方访问它? (我目前的方法的好处是我不需要将这些信息设置为全局变量;例如,我可以在需要的地方使用硬编码和警报消息。)
有关我的情况的最佳做法的建议吗?
答案 0 :(得分:4)
由于您已经使用过PHP,为什么不使用它来生成包含所有变量的动态.js文件并将其包含在页面上?
PHP:
var foo = '<?php echo $foo; ?>';
var bar = '<?php echo $bar; ?>';
HTML:
<script type="text/javascript" src="vars.php"></script>
<script type="text/javascript" src="actual_javascript_stuff.js"></script>
...
这样您就可以将所有配置保存在一个位置。您可以包含PHP的配置文件并使用它填充JavaScript变量。
答案 1 :(得分:0)
你可以使用ajax,但是如果你不使用ajax,那么一个简单的解决方案就是添加一个额外的<script type="text/javascript" src="config.php"></script>
并让该文件自动生成JS设置。
答案 2 :(得分:0)
将包含所有配置的文件重命名为filename.js.php,这告诉服务器在服务之前需要解析该文件。
然后使用php表达式获取您的值,例如:
var username='<?=$username;?>';
(顺便说一下<?=...;?>
是<?php echo $username; ?>
)
另一种方法是,将所有属性传递给PHP对象的前端,并将其作为json字符串传递。
所以最初,在filename.js.php中,有类似的东西:
var properties = <?=json_encode($php_properties_object);?>
然后,当在客户端上发送语言时,只需通过AJAX查询将相同的json编码对象返回到前端,并将其分配给properties
javascript变量。然后获取javascript代码重新加载关闭的所有配置。
答案 3 :(得分:0)
这可能会有所帮助:http://www.gifnoc.com/config(如果我认为它是JSON的话)