我正在构建一个静态Angular网站,其数据基于来自包含超过200,000个JSON对象的大型数组中的1000个随机对象。我在网上某处以文本形式存储大量JSON对象(如Github或Dropbox),文本文件大小超过200MB。由于性能问题,显然不是加载网站中所有数据的选项,但我也不想使用数据库,因为我正在构建一个静态网站。如何在不加载整个数组的情况下,只从200,000个对象中随机加载1000个对象?
答案 0 :(得分:3)
您可以尝试仅下载文件的第一个部分块并尝试使用它。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Range_requests
您可以使用Angular的HTTP服务发出 <dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-cassandra</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-core -->
<dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-core</artifactId>
<version>3.5.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.cassandra/cassandra-driver-mapping -->
<!-- <dependency>
<groupId>com.datastax.cassandra</groupId>
<artifactId>cassandra-driver-mapping</artifactId>
<version>3.5.0</version>
</dependency>
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.datastax.spark/spark-cassandra-connector -->
<dependency>
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.11</artifactId>
<version>2.0.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.spark/spark-sql -->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.2.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
请求,但会将GET
添加到标头中。其中Range: bytes=0-1023
定义了您想要获取的字节数(使用开始和结束范围)。
如果服务器支持此功能,那么您必须清理从服务器获取的字符串JSON。由于JSON在完成之前将被切断。
我不知道JSON的结构是什么。如果这是一个实用的解决方案,但如果它是一个JSON对象数组,那么很难说。您可以尝试查找以数组分隔符0-1023
字符结尾的字节范围,并将,
附加到字符串的末尾。
如果您需要文件的随机部分。您将针对不同的部分块发出多个]
请求,然后尝试清理JSON以使其有效。