我正在实施诺基亚/谷歌地图,我必须在其中存储500个标记。我通过循环遍历php数组并使用数据属性将其放入无序列表中来接收信息(名称,lat,lon,markergroup和image)。然后我使用jQuery循环遍历这些li元素并用标记信息填充地图。
这个工作正常但是在dom中有一个包含500个隐藏元素的列表似乎对我来说是性能问题的开销。
在将标记直接插入地图之前,使用内联javascript结合php元素,这对我来说是一个不好的做法,因为我必须在不同的情况下使用地图,而且我有很多重复的代码。
现在有一个更好的方法来归档这个,而不是有500个dom元素包含所需的标记信息吗?
一些想法:
1)我可以创建一个包含所有500个标记信息的JSON数组,并将其保存在单个数据属性中。不确定是否存在某些浏览器限制因为这是单个数据属性的大量数据。由于json编码/解码,性能可能更差。
2)我可以使用所需的标记信息创建一个JSON / XML / KML文件,并通过AJAX访问它。在我的情况下,这是一个更大的努力,并且ajax请求可能比dom解析花费更长的时间。
3)再次使用内联JS(由于缺少可重用的代码,在我的情况下真的是一种不好的做法..)
有什么想法?有人测试类似的情况检查性能吗?
答案 0 :(得分:0)
将json直接输出到脚本标签是最简单的选择:
<script>
var data = <?php echo json_encode($data);?>;
</script>
但是ajax对jquery来说也很简单:
var data;
$.get('somefile.php', function(data){
data=data;
});
somefile.php:
header('Content-Type: application/json');
echo json_encode($data);
答案 1 :(得分:0)