在静态网站中将数据加载到JavaScript中以便立即使用的最快方法是什么?
我有一个网站,需要加载大量的数据(即〜5或10 Mb的CSV)。在静态网站中将数据加载到JavaScript中以便立即使用的最快方法是什么?
这是一个静态网站(仅限HTML和JS,没有数据库),我需要从头开始一次全部数据,因为我使用了dc.js和datatables中的数据。
现在我已经将数据存储在一个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更差,因为它需要更多的空间。
1.打破了数据
也许你可以把数据变成几千行的块来重建客户端传递到数据表之前?
这样你就可以利用并行下载。
2.充分利用客户端缓存
如果您知道数据将如何变化频繁,或可以接受的变化一定的时间间隔,您可以使用HTTP Expires
头保持文件的不必要下载?
在黑暗中拍摄就在这里
也许看看这个http://papaparse.com
有一个在线演示,你也许可以只是你的数据粘贴到,看看需要多长时间。下载脚本并尝试一下,并将其与您正在使用的内容进行比较。
虽然这可能会回答问题,但最好提供实际这里的信息,而不仅仅是一个链接。 [只有链接的答案不被认为是好答案,可能会被删除](http://stackoverflow.com/help/deleted-answers)。 –
它已经被gzipped了吗?不知道它对你的数据有多好,但总比没有好。 – Prinzhorn
最快的方法是获得所需数据的子集。你真的需要网页上的所有数据吗? – MaxZoom
之前你已经问过同样的问题......上周以来没有任何变化,当时有很多替代品给你。你坚持一次加载所有数据的事实仍然是愚蠢的。由于服务器端搜索时间无关紧要,您正在牺牲大页面负载 – charlietfl