Когда я выполняю запрос SPARQL через браузер или curl
, это происходит намного быстрее, чем в том же браузере, использующем выборку JavaScript.Например, select * {?s ?p ?o.}
в DBpedia занимает 400-1000 мс в браузере и несколько секунд, используя выборку JavaScript.Количество строк ограничено 10000 в обоих случаях (в противном случае полная DBpedia была бы слишком большой).Это не ограничивается DBpedia, это происходит и с нашей собственной конечной точкой SPARQL, которая содержит около 100 тыс. Троек.Я использую Firefox Developer Edition 65.0b3 (64-разрядная версия).Как я могу получить такую же производительность или хотя бы такую же, используя fetch
?Для выполнения MWE необходимо обойти правила CORS.
<!DOCTYPE html>
<html>
<head><meta charset="utf-8"></head>
<body>
<script>
const ENDPOINT = "http://dbpedia.org/sparql"
const GRAPH = "http://dbpedia.org";
function sparql(endpoint, graph, query)
{
const url = endpoint +
'?query=' + encodeURIComponent(query) +
'&format=json'+
'&default-graph-uri=' + encodeURIComponent(graph);
return fetch(url);
}
const query = "select * {?s ?p ?o.}";
sparql(ENDPOINT,GRAPH,query);
</script>
</body>
</html>