2

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

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

我想出了两种方法,这两种方法都有效——我很好奇哪种方法最好,为什么?

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

$(document).ready(function() 
{

});

第一个是隐藏的表单域。我可以通过我的经度和纬度并使用 jQuery 在我的 javascript 文件中获取它们。

第二种是简单地使用

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

</script>

在我的 PHP 脚本中,然后以类似的方式在我的 Javascript 文件中访问/循环它,我在我的 PHP 文件中循环它。

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

谢谢

4

2 回答 2

1

我肯定会选择 JavaScript 数组。

原因:

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

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

我不会担心性能基准。不会有任何显着差异。易于编码更为重要。

于 2013-03-22T20:25:58.407 回答
0

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

于 2013-03-22T20:25:18.997 回答