从服务器加载JS配置?

时间:2010-10-30 00:59:16

标签: php javascript ajax web-applications

我希望我的JS加载需要来自服务器的某些信息。例如URL,特定于语言的消息等。从服务器向JS提供此信息的最佳方法是什么?

现在,我将这些值存储在实际的JS文件中。我不喜欢这种方法,因为信息在服务器端重复。

让初始JS发出Ajax请求以获取所有这些细节是不是一个好主意?也许将它存储在一个全局变量中,以便可以从任何地方访问它? (我目前的方法的好处是我不需要将这些信息设置为全局变量;例如,我可以在需要的地方使用硬编码和警报消息。)

有关我的情况的最佳做法的建议吗?

4 个答案:

答案 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的话)