这些方法中的任何一种都比另一种更可取,还是我应该考虑其他任何方法?
我不认为有一个正确的答案,当然我在这个主题上听到了很多相互矛盾的意见,但是从你提到的两种方法中选择我会选择将值注入 JavaScript,因为我发现它更容易。
但是由于您要求其他建议,您可以将这两种想法结合起来:您的服务器端代码可以只<script>
在<head>
您的其他脚本(包括多个源文件中的脚本)。您可以将所有数据粘贴在一个对象中以避免大量全局变量:
<html>
<head>
<script>
var dataFromServer = { /* all your server data here */};
</script>
<script type="text/javascript" src="somelibrarycript.js"></script>
<script type="text/javascript" src="someotherscript.js"></script>
<script>
if (dataFromServer.someProperty) {
// someProperty provided above so do something with it...
}
</script>
</head>
etc...
这种方法还有一个额外的优势,即服务器端代码本质上只是生成 JSON(如果直接包含在页面源中,它将成为对象字面量),因此如果您以后决定开始使用某些 Ajax,那么您就已经差不多了。