网页上的 JavaScript 通常需要能够访问服务器上已知的变量。例如,用户的用户名。假设我们不想发出 JSON/XML 请求,因为这会不必要地增加复杂性以及页面点击次数。我们希望将数据与 html/Javascript 一起发送。
发送数据的一种方法是将其注入(inject) Javascript。
var x={{username}};
另一个想法是在 head 中创建一个元项并将数据存储在那里,然后使用 jQuery(或等效的)来检索它。
这两种方法中的一种比另一种更好,还是我应该考虑其他方法?
最佳答案
Is either of these methods preferable to the other or are there any other methods that I should consider?
我认为没有一个正确的答案,当然我在这个问题上听到了很多相互矛盾的意见,但是从你提到的两种方法中进行选择,我会选择将值注入(inject) 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,那么您几乎已经那里。
关于javascript - 如何使用可从 Javascript 访问的 HTML 发送值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7950245/