2009-10-06 105 views
3

我正在用jQuery开发一个宠物项目。现在,应用程序需要一些变量值在加载页面时被转移到客户端JavaScript。我想知道做什么是最佳做法。将变量值从服务器传递给JavaScript的最佳做法是什么?

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

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

这意味着客户将看到

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

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

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

哪种方法更好?有没有其他方法可以做到这一点?

回答

7

为了有效的html,我会使用第一种方法,尽管只要它完成了工作就没关系。

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

我想了很久,很高兴你们和我有同样的想法。以可读性折衷一点表现。 – 2013-02-28 09:28:48

0

- 编辑:

正是这样很明显,你的“问题”被问的东西比你的“代码”完全不同。你需要澄清,我的帖子在下面讨论“问题”。

- 老:

我通常返回完整的HTML被渲染,在Ajax调用的页面。

原因是我不必在JavaScript中重复布局逻辑,并且最终通常只会保持JavaScript的微不足道,以及设置相关占位符的HTML /文本内容的形式。

这是以传输更多数据为代价的,但对于我来说,我很乐意进行这种交换。

0

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

0

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

1

我很少有通过只是一个变量...我往往有一整套的信息,在这种情况下,我使用:

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

没有往返于服务器,与JSON前面提到的。

相关问题