我试图将非常大的数组传递给JavaScipt以便在客户端进行操作,但它无法正常工作。这些数组通常每个都有大约12,000个元素,当我只插入2,000个元素时,这段代码正常运行。
<script type="text/javascript">
var getLenders = JSON.parse('<?php echo json_encode($getlenders); ?>');
var discountArray = JSON.parse('<?php echo json_encode($discountArray); ?>');
var getData = JSON.parse('<?php echo json_encode($sortedArray); ?>');
</script>
我将服务器的内存需求增加到512MB(之前的4倍),认为这已经足够了,但它仍然无法正常工作。在我将内存增加到1024MB之前,我想知道是否还有其他原因导致内存无效。这可能是客户端内存的问题吗?
赞赏任何意见。
答案 0 :(得分:1)
我确信这不是一个好主意,因为您无法知道客户端是否有足够的内存来运行您的页面,此页面会冻结浏览器或使其崩溃。
首先,您可以将此代码优化为:
mysqldump
因为json基于JavaScript而不需要转换为字符串并再次解析。
其次,但我有一个想法:当您需要时,只需 var getLenders = <?php $a = json_encode($getlenders); echo $a == null? '{}': $a; ?> ;
var discountArray = <?php $b = json_encode($discountArray); echo $b == null? '{}': $b; ?>;
var getData = <?php $c = json_encode($sortedArray); echo $c == null? '{}': $c; ?>;
获取所需的值。
答案 1 :(得分:0)
别。
处理如此大量的元素是无利可图的。这对你的服务器来说是不好的,它会以某种方式生成数组,对你的客户来说,这对于必须处理大量的数据是不利的,而且我真的不认为客户端需要在一次运行中显示所有数据。为什么你不考虑只在需要时才加载数据的ajax实现?
答案 2 :(得分:0)
您应该使用分页实现它。因此,可能只是一次显示100个条目,可以按标题进行编辑和排序。
然后,用户可以通过单击next
链接决定查看下100个条目。然后,您执行AJAX请求以获取数据并更新您的网站。
jQuery应该足以胜任这项工作。