将变量值从服务器传输到javascript的最佳做法是什么?

时间:2009-10-06 01:17:03

标签: javascript browser variables

我正在用jQuery开发一个宠物项目。现在应用程序需要在加载页面时将一些变量值传送到客户端javascript。我想知道做这件事的最佳做法是什么。

我可以通过两种方式进行图像处理。首先,将其渲染为页面中的javascript变量。

<script> <?php echo "var maxid = $maxid;"?> </script>

这意味着客户将看到

<script> var maxid = <somevar>; </script>

其次,将其指定为一个元素的属性。

<div maxid="<php echo $maxid >" />

哪种方法更好?还有其他办法吗?

6 个答案:

答案 0 :(得分:7)

为了有效的html,我会选择第一种方法,但只要完成工作就无所谓。

<script>
$(function() {
    var max_id = <?php echo $max_id;?>;
});
</script>

答案 1 :(得分:3)

我使用JSON字符串将值传递给客户端 看一下这个例子http://blog.reindel.com/2007/10/02/parse-json-with-jquery-and-javascript/

答案 2 :(得分:1)

我很少只传递一个变量...我倾向于拥有一整套信息,在这种情况下我使用:

var myAwesomeStuff = <?php echo json_encode($myArrayOfAwesomeInformation); ?>

没有前往服务器,如前面提到的JSON。

答案 3 :(得分:0)

- 编辑:

就是这样,很清楚,你的“问题”是要求与你的“代码”完全不同的东西。你需要澄清一下,我的帖子下面谈到了“问题”。

- 旧:

我通常会在ajax调用的页面中返回要呈现的完整HTML。

这样做的原因是我不必在JavaScript中复制布局逻辑,并且它最终通常对于保持JavaScript微不足道以及设置相关占位符的HTML /文本内容的形式非常有用。 / p>

这是以转移更多数据为代价的,但对我来说,我很乐意做出这种权衡。

答案 4 :(得分:0)

我会把它渲染成一个javascript变量(你的第一个选择)。这似乎是一种常见的方法。

答案 5 :(得分:0)

第一种方法更好,因为您将使用简单的变量消耗更少的内存和CPU。使用DIV方式,您将使用DOM元素和DOM节点搜索来读取值。