将数据从php传递到javascript的最有效方法-隐藏表单字段或json_编码

将数据从php传递到javascript的最有效方法-隐藏表单字段或json_编码,php,javascript,jquery,parameter-passing,Php,Javascript,Jquery,Parameter Passing,所以我的特殊问题如下——我有一个PHP页面,它循环遍历坐标列表,并在页面上显示它们 除此之外,我还想在地图上显示它们 我想出了两种方法来做这件事,这两种方法都是有效的——我很好奇哪种方法最好,为什么 我的理解是,通过将我的javascript放在下面的代码中,我的javascript在页面加载之前不会执行。正是由于这个原因,这两种方法都有效 $(document).ready(function() { }); 第一个是隐藏表单字段。我可以传递经度和纬度,并使用jQuery在javascri

所以我的特殊问题如下——我有一个PHP页面,它循环遍历坐标列表,并在页面上显示它们

除此之外,我还想在地图上显示它们

我想出了两种方法来做这件事,这两种方法都是有效的——我很好奇哪种方法最好,为什么

我的理解是,通过将我的javascript放在下面的代码中,我的javascript在页面加载之前不会执行。正是由于这个原因,这两种方法都有效

$(document).ready(function() 
{

});
第一个是隐藏表单字段。我可以传递经度和纬度,并使用jQuery在javascript文件中获取它们

第二个是简单地使用

<script type='text/javascript'>
    var myarray = <?php echo JSON_encode($array); ?>;

</script>

var myarray=;
在我的PHP脚本中,然后在我的Javascript文件中访问/循环它,就像我在PHP文件中循环它一样

    for (var i=0, tot=myarray.length; i < tot; i++) 
{//plot points}
for(var i=0,tot=myarray.length;i

感谢您考虑以下几点:如果您使用选项2(在服务器上循环),并且您同时有200个请求,那么您将让每个请求在服务器上执行此循环。现在,当您对数组进行JSON编码并将其提供给客户机时,您就在服务器中完成了对它的处理,并让不同的浏览器(客户机)处理其余部分。现在,当您必须将相同数量(200)序列化为json时,情况会发生变化。因此,这是一个速度和性能的问题:哪一个更快?对于
循环和使用
echo()将所有内容写入服务器,哪一个执行得更好?答案将根据对象的大小而变化。所以,无论如何,继续测试哪一个更快,一个简单的脚本就足够了。

我肯定会使用JavaScript数组

原因:

(1) 表单字段用于发布到服务器,而您没有这样做。那么,为什么要在不需要的时候向DOM中添加隐藏的输入元素呢

(2) 使用JavaScript数组中的值将更容易。遍历它们更容易,而且它们不必是字符串值。当您获得隐藏输入元素的值时,它是一个字符串。然后,如果它确实是其他类型,则必须将其解析为其他类型。JavaScript值甚至可以是嵌套对象


我不会担心性能基准。不会有任何显著差异。编码的简单性更为重要。

似乎主要取决于序列化/反序列化函数的效率差异。您的隐藏表单字段解决方案也是JSON吗?如果是的话。。。它是如何反序列化的。。。另外,你给了我们两个非常简单的选择,我认为这很容易进行基准测试。(让我们知道您的基准测试揭示了什么!)您还可以对只提供JSON值的端点进行异步调用,以防它是一个很长的列表。这将允许用户查看漂亮的地图加载,而不是等待页面加载