2016-02-19 52 views
0

我有一個網站,需要加載大量的數據(即〜5或10 Mb的CSV)。在靜態網站中將數據加載到JavaScript中以便立即使用的最快方法是什麼?

這是一個靜態網站(僅限HTML和JS,沒有數據庫),我需要從頭開始一次全部數據,因爲我使用了dc.jsdatatables中的數據。

現在我已經將數據存儲在一個CSV文件中,並使用函數從d3.js加載它。
但是在我最快的連接上有20K記錄需要5秒。只是爲了加載文件。

爲了給出一個更好的主意,這是我的CSV(其中有10K到這些50K)的單條記錄:

Title,Year,Rating,NumVotes,imdbID,Type,poster_path,release_date,Released,Runtime,Genres,Directors,Actors,Plot,Country,Metascore,imdbRating,imdbVotes,tomatoMeter,tomatoReviews,tomatoUserMeter,tomatoUserReviews,DVD 
"Grease Live!","2016","7.7","3978","tt4366830","TV Movie","/6g1E0Ptg27NLCoK7rhJxuQxZCdg.jpg","2016-01-31","31 Jan 2016","180","Musical","Thomas Kail, Alex Rudzinski","Aaron Tveit, Julianne Hough, Elle McLemore, Vanessa Hudgens","After enjoying a summer romance, high school students Danny and Sandy are unexpectedly reunited when she transfers to Rydell High. There Sandy must contend with cynical Rizzo and the Pink Ladies in attempt to win Danny's heart again.","USA","N/A","7.8","3,710","N/A","N/A","N/A","12","N/A" 

我想知道這將是載入我的數據的最快方法(壓縮,拆分和異步加載,firebase ...)。

目前我所知道的是,JSON比CSV更差,因爲它需要更多的空間。

+2

它已經被gzipped了嗎?不知道它對你的數據有多好,但總比沒有好。 – Prinzhorn

+0

最快的方法是獲得所需數據的子集。你真的需要網頁上的所有數據嗎? – MaxZoom

+1

之前你已經問過同樣的問題......上週以來沒有任何變化,當時有很多替代品給你。你堅持一次加載所有數據的事實仍然是愚蠢的。由於服務器端搜索時間無關緊要,您正在犧牲大頁面負載 – charlietfl

回答

2

1.打破了數據

也許你可以把數據變成幾千行的塊來重建客戶端傳遞到數據表之前?

這樣你就可以利用並行下載。

2.充分利用客戶端緩存

如果您知道數據將如何變化頻繁,或可以接受的變化一定的時間間隔,您可以使用HTTP Expires頭保持文件的不必要下載?

在黑暗中拍攝就在這裏

1

也許看看這個http://papaparse.com

有一個在線演示,你也許可以只是你的數據粘貼到,看看需要多長時間。下載腳本並嘗試一下,並將其與您正在使用的內容進行比較。

+0

雖然這可能會回答問題,但最好提供實際這裏的信息,而不僅僅是一個鏈接。 [只有鏈接的答案不被認爲是好答案,可能會被刪除](http://stackoverflow.com/help/deleted-answers)。 –

相關問題