我正在嘗試創建一個數據分析門戶,該門戶允許我將其中一個表導出爲CSV。我現在遇到的問題是,當用戶選擇大量數據時,它會失敗,因爲它已經達到了我的瀏覽器可用的Javascript變量的最大堆棧大小。 (如解釋here)。解決方案是將它們分成更小的Javascript數組塊,然後再將它們連接起來。將大的PHP數組分割爲更小的塊用於javascript
我的問題
我有一個很大的PHP數組(可變大小的,因爲我不知道什麼範圍的用戶選擇),我需要將它們分割成JavaScript數組的變量數,然後再次將它們連接起來後來。我怎樣才能做到這一點?
我的代碼目前看起來像
<?php
$array2 = getAllRawData($startDate, $endDate, $merchantID);
array_unshift($array2, ...TO ADD HEADER TO CSV....));
?>
// I am thinking some magic is supposed to happen here that splits my PHP array into smaller parts, assign them to javascript arrays and then concatenate them together into items2.
var items2 = <?php echo json_encode($array2);?>; // this is what I currently do but fails when the date range gets too wide.
var jsonObject2 = JSON.stringify(items2);
var csv2 = ConvertToCSV(jsonObject2);
a=document.createElement('a');
a.textContent='Download Raw Waiting Time Report';
a.download="RawWaitTime.csv";
a.href='data:text/csv;charset=utf-8,'+escape(csv2);
document.body.appendChild(a);
你爲什麼要經歷這一切?你不能直接從服務器提供CSV文件作爲下載嗎? – 2013-10-28 03:15:44
同意Mike W.通常,當您將PHP代碼混合到Javascript代碼中時,您會過度複雜化某些內容。 – teynon
嗯,我從來沒有想到,也許我會試一試。任何意見或指針,將非常感激! – chongzixin